我想hibernate.format_sql在Spring Boot应用中设置。我想使用环境变量进行设置。
hibernate.format_sql
Spring Boot可以轻松地将所有环境变量从(例如)转换为在Spring上下文内部FOO_BAR_BAZ调用foo.bar.baz的属性。
FOO_BAR_BAZ
foo.bar.baz
如何在Spring Boot中使用环境变量在目标名称中设置带下划线的属性?想必HIBERNATE_FORMAT_SQL会被翻译成hibernate.format.sql?
HIBERNATE_FORMAT_SQL
hibernate.format.sql
这是一个古老的问题,但是如果其他人(例如我)最终在这里寻找此信息,我会回答。
HIBERNATE_FORMAT_SQL应该可以解决问题
实际上,不是“翻译” OS环境变量,而是“ Spring”属性名称。
该名称以几种方式转换,并根据可用的环境变量进行查找。例如,“ hibernate.format.sql”查找为:
然后与大写相同:
尽管不能使用set或export命令在名称中设置带点的环境变量,但是可以使用env命令。我推迟判断这是否是一个好主意:
env "my.dotted.name=\"a value\"" the-command-you-want-to-run
有关详细信息,请查看SystemEnvironmentPropertySource.java。我链接到特定版本,但您应确保查看所使用的版本。
要解决生产环境中的这类问题,您可以尝试为属性解析代码打开调试日志记录:
logging: level: org.springframework.core.env: DEBUG
…或通过设置适当的环境变量:)