默认情况下,Spring Boot将自动从类路径中加载属性:/application.properties
我想知道这个自动配置源代码在哪里.
我想从我的应用中排除.
IE:@EnableAutoConfiguration(exclude = XXXXAutoconfiguration.class)
原因是:
因为我无法使用@PropertySource通过外部属性覆盖默认的application.properties
@SpringBootApplication
@ComponentScan(basePackages = {"com.test.green.ws"})
@PropertySource(value = {"classpath:/application.properties", "file:/opt/green-ws/application.properties"})
public class GreenWSApplication {
public static void main(String[] args) {
SpringApplication.run(GreenWSApplication.class, args);
}
}
解决方法:
在不禁用整个外部化配置功能的情况下,有很多方法可以覆盖属性键.这实际上是目标.
您可以看到here the order the properties are considered in.例如,您可以将外部属性文件添加到打包的JAR甚至configure the file location yourself旁边的config文件夹中.
现在,如果您真的想禁用所有功能(引导团队强烈建议不要这样做),则可以注册自己的EnvironmentPostProcessor(see here)并从MutablePropertySources中删除PropertySources,您可以使用configurableEnvironment获取它. getPropertySources().
没有比这更简单的方法了,因为:
>这确实是在应用程序初始化阶段的早期,即自动配置之前
>这不是您应该做的事情,因为它会有很多副作用
标签:spring-boot,spring 来源: https://codeday.me/bug/20191118/2025993.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。