【问题标题】:Spring-Boot > Setting application.properties using JNDISpring-Boot > 使用 JNDI 设置 application.properties
【发布时间】:2016-08-28 04:06:01
【问题描述】:

根据这个github issue,我可以指定一个application.properties 文件的位置。例如

JNDI 环境资源:

java:comp/env/spring.config.location = /some/path/application.properties

我想知道的是:

我可以使用 JNDI 绑定在我的 Spring Boot 应用程序中直接配置单个 application.properties 属性值吗?

我尝试了以下 JNDI 变量(无济于事):

JNDI 环境资源:

java:comp/env/my.env.myCustomStringField = foobar
java:comp/env/my.env.my-custom-string-field = foobar

Spring Reference:

如果您在容器中运行,则可以使用 JNDI 属性(在 java:comp/env 中)或 servlet 上下文初始化参数来代替环境变量或系统属性,或者同时使用环境变量或系统属性。

我目前正在使用the following workaround

【问题讨论】:

  • 环境变量和应用程序属性不同。如果您使用的是 windows 机器,那么您可以设置环境My Computer -> Right click on properties -> Advanced system settings -> Environment variables。在这里您可以定义所有应用程序都可以访问的全局变量。第二种方式,您可以通过特定于该程序的命令行使用-Dkey=value 传递应用程序参数。

标签: java spring spring-boot jndi


【解决方案1】:

不确定我在想什么,您可以使用 JNDI 设置 application.properties 文件的位置,和/或覆盖任何应用程序变量。

例如

spring.config.location = file:/some/location/properties/
my.env.myCustomStringField = foobar

不要理会java:comp/env/,Spring 为您提供保护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多