根据Spring Boot有关外部化配置的文档,我尝试将JNDI变量加载到我的yml配置文件中,如下所示:
spring:
# Show or not log for each sql query
jpa:
show-sql: java:global/bc-api-immop/hibernate/show_sql
而且这不起作用。
我也尝试过这个:
spring:
# Show or not log for each sql query
jpa:
show-sql
jndi-name: java:global/bc-api-immop/hibernate/show_sql
但是,结果还是一样。 你知道我做错了什么吗?
虽然听起来很奇怪,但我也有这段代码,并且它有效:
spring:
# Set here configurations for the database connection
datasource:
jndi-name: java:jboss/datasources/bc-appli-as400-ds
编辑:当我这样做时,它会起作用(所以我的问题实际上来自于获取我的 JNDI 变量):
spring:
# Show or not log for each sql query
jpa:
show-sql: true
你编写 yaml 的方式才是真正的问题
一般概念是
key: value
,因此通过编写show-sql
,Spring Boot期望值为true
或false
,如附录A.常见应用程序属性所示,因此您的属性配置失败是正常的,我我非常确定这会出现在您的日志文件中的某个位置。
在第一个例子中,当你写
show-sql: java:global/bc-api-immop/hibernate/show_sql
时,你实际上是在回答“我应该向你展示生成的SQL语句吗”和“Hi spring Boot,这是你的数据源”这个问题,我们都知道这没有任何意义弹簧靴:)
另一方面,你最后的陈述是正确的。您正在 yaml 集合项
datasource
下定义属性 jndi-name:
,其值为 java:jboss/datasources/bc-appli-as400-ds
我还建议花 10 分钟阅读这篇文章 在 Y 分钟内学习 X
所以正确的方法可能是
spring:
# Set here configurations for the database connection
datasource:
jndi-name: java:jboss/datasources/bc-appli-as400-ds
jpa:
show-sql: true
如果我可以帮助您,请告诉我