配置 JNDI Spring 引导应用程序

Configuring JNDI Spring boot application

我正在使用 Spring 引导应用程序,其中 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 引导 运行 命令时,这很好用,但是我需要以这样的方式配置这些东西,当我尝试通过 Maven 构建创建一个 war 配置将 JNDI 名称设置为:

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

我可以通过 Maven 或任何其他方式配置它吗?当我们通过 Spring 引导部署它时,它会选择以上 4 个属性,而当我们创建 war 它只选择 JNDI 属性.

-Vaibhav

您可以为此使用 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 环境变量),然后 -Dspring.profiles.active=jndi 当你需要用 JNDI 运行 时。

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