【问题标题】:Configuring JNDI Spring boot application配置 JNDI Spring Boot 应用程序
【发布时间】:2016-06-12 08:31:51
【问题描述】:

我正在使用 Spring Boot 应用程序,其中 datasouce 的默认配置是使用 application.properties 中的以下属性完成的:

spring.datasource.driverClassName=${datasource.driver.className}
spring.datasource.url=${datasource.url}
spring.datasource.username=${datasource.username}
spring.datasource.password=${datasource.password}

问题是,当我通过本地 maven 运行 spring boot run 命令时,这很有效,但是我需要以这样的方式配置这些东西,当我尝试使用 maven 构建来创建战争时,配置会放置一个JNDI 名称为:

spring.datasource.jndi-name=java:jboss/datasources/

我可以通过 maven 或任何其他方式使其可配置,当我们通过 Spring boot 部署它时,它会选择以上 4 个属性,而当我们创建战争时,它只会选择 JNDI 属性。

-Vaibhav

【问题讨论】:

  • 拥有 2 个单独的配置文件肯定会有所帮助,但如果我们希望 JNDI 查找为默认值并使用其他属性文件取消设置本地配置怎么办。因此,当我们在没有明确提及 spring 配置文件的情况下进行构建时,它会使用 JNDI 查找构建并且明确提及数据源是否构建?

标签: maven spring-boot datasource jndi


【解决方案1】:

您可以为此使用 Spring 配置文件。例如,创建一个名为 application-local.properties 的文件并将前四个属性添加到其中:

# application-local.properties
spring.datasource.driverClassName=${datasource.driver.className}
spring.datasource.url=${datasource.url}
spring.datasource.username=${datasource.username}
spring.datasource.password=${datasource.password}

然后再创建一个文件名application-jndi.properties:

# application-jndi.properties
spring.datasource.jndi-name=java:jboss/datasources/

现在您所要做的就是在本地运行命令时将 VM 参数 -Dspring.profiles.active=local(或添加 SPRING_PROFILES_ACTIVE=local 环境变量)添加到命令中,并在需要使用 JNDI 运行命令时添加 -Dspring.profiles.active=jndi

根据 Maven 打包类型,它并不是完全自动的,但是为每个环境配置 Spring 配置文件也不难。您还可以将两个配置属性之一设置为默认值(在 application.properties 中),这样您就不必过多地配置配置文件。

【讨论】:

  • “您还可以将两个配置属性之一设置为默认值(在 application.properties 中),这样您就不必对配置文件进行太多配置。”你能详细说明一下吗?
  • 如果您在application.properties 中设置了spring.datasource.jndi-name 属性并在application-local.properties 中取消设置它,那么您不需要application-jndi.properties,因为如果您在没有运行的情况下现在这是默认设置个人资料。
  • 是的,我尝试这样做,但无法找到取消设置属性的方法,实际上它将 application.properties 视为父级,再次设置为 null 会引发异常。
  • 留空是不是不行? spring.datasource.jndi-name=(然后是换行符)
  • 不,它说 Failed to look up JNDI DataSource with name ''"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 2015-05-20
  • 2021-12-16
  • 2014-10-12
相关资源
最近更新 更多