Spring Boot:无法将JNDI变量加载到yml配置文件

时间:2018-02-01 10:42:28

标签: spring spring-boot yaml jndi

根据Spring Boot documentation about Externalized configuration,我尝试将JNDI变量加载到我的yml配置文件中,如下所示:

spring:
  # Show or not log for each sql query
  jpa:
    show-sql: java:global/bc-api-immop/hibernate/show_sql

它不起作用。

我在JNDI上下文中有我的变量: enter image description here

我也试过这个:

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

1 个答案:

答案 0 :(得分:1)

你写yaml的方式是真正的问题

一般概念是FeedbackAfter因此,通过编写key: value春季启动期望show-sqltrue的值显示在Appendix A. Common application properties上,因此这是正常的您的属性配置失败,我很确定它会显示在您的日志文件中的某个位置。

在您编写false的第一个示例中,您实际上正在回答问题" 我应该向您展示生成的SQL语句"使用" 嗨spring boot这是你的数据源"我们都明白这一点不会让人感到弹跳:)

另一方面,你的最后陈述是正确的。您正在yaml集合项show-sql: java:global/bc-api-immop/hibernate/show_sql下定义属性datasource,其值为jndi-name:

我还建议花10分钟阅读这篇文章Learn X in Y minutes

所以正确的方法可能是

java:jboss/datasources/bc-appli-as400-ds

如果我可以帮助您,请告诉我