为了账号安全,请及时绑定邮箱和手机立即绑定

不工作 spring.config.additional-location

不工作 spring.config.additional-location

慕姐4208626 2022-03-10 15:58:46
行家:<profiles>    <profile>        <id>local</id>        <activation>           <activeByDefault>true</activeByDefault>        </activation>        <properties>            <active.spring.profile>local</active.spring.profile>        </properties>    </profile></profiles>应用程序属性:spring.profiles.active=@active.spring.profile@spring.config.additional-location=classpath:/profile/application-${spring.profiles.active}.properties在此之后我无法从 src/main/resources/application-local.properties 获得价值,其中包含test.prop=123@Servicepublic class TestProps {    @Value("${test.prop}")    String testProp;    @PostConstruct    void run() {        System.out.println(testProp);    }}错误在哪里?或者这是一个错误?
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

属性:spring.config.additional-location必须像这样作为 JVM 的参数提供:java -Dspring.config.additional-location=classpath:/profile/application-local.properties -jar whatever.jar

把它放进去没有意义application.properties。从文档中:

或者,当使用 spring.config.additional-location 配置自定义配置位置时,除了默认位置之外,还会使用它们。在默认位置之前搜索其他位置

由于在默认位置之前搜索了附加位置,因此必须更早地提供它们,因此您无法将它们放入application.properties


查看完整回答
反对 回复 2022-03-10
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

additional-location 确实不属于 application.properties,因为 Spring 不会从那里解释它。它需要在默认配置文件之前加载其他配置文件。另一方面,在 maven spring boot 插件中设置默认的附加位置很方便。这样一来,就可以在项目源之外设置安全敏感信息,并且不会出现在源存储库中。例如,客户端安全配置可以读取:


app:

  client:

    ssl: 

      keystore: path/to/keystore

      keystore-password: the-keystore-password

      key-password: the-key-password

 

可以跳过 src/main/resources 中的默认 application.yml,而附加配置可以提供每个活动配置文件的值并确保它们在本地计算机上的安全。


查看完整回答
反对 回复 2022-03-10
  • 2 回答
  • 0 关注
  • 1239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信