bdk*_*her 24 java system-properties spring-boot
我的application.ymlSpring Boot应用程序有一个配置文件,它定义了两个配置文件(如文档中所述).
启用生产配置文件后,我想将http.maxConnections系统属性设置为自定义值,例如
spring:
profiles:
active: dev
---
spring:
profiles: dev
---
spring:
profiles: production
http:
maxConnections: 15
Run Code Online (Sandbox Code Playgroud)
但这实际上并没有设置系统级属性; 它似乎只是创建一个应用程序级属性.我在比较启动时通过http:// locahost:8080/env和JMX控制台验证了这一点
java -jar -Dspring.profiles.active=production myapp.jar
Run Code Online (Sandbox Code Playgroud)
与
java -Dhttp.maxConnections=15 myapp.jar
Run Code Online (Sandbox Code Playgroud)
我想我可以@Conditional在"生产"配置文件中创建一个bean,它System.setProperty根据我的application.yml-defined属性以编程方式调用,但是单独通过配置文件有更简单的方法吗?
你可以试试.
@Profile("production")
@Component
public class ProductionPropertySetter {
@PostConstruct
public void setProperty() {
System.setProperty("http.maxConnections", 15);
}
}
Run Code Online (Sandbox Code Playgroud)
我想我可以在“生产”概要文件上创建一个@Conditional的Bean,该Bean根据我的application.yml定义的属性以编程方式调用System.setProperty,但是仅通过配置文件有没有更简单的方法?
我认为这是您最好的选择。Spring Boot在将LoggingSystem各种logging.*属性映射到系统属性的过程中自行完成此操作。
请注意,您可能希望尽早设置系统属性Environment。为此,您可以使用ApplicationListener监听ApplicationEnvironmentPreparedEvent。您的ApplicationListener实现应通过中的条目进行注册spring.factories。
| 归档时间: |
|
| 查看次数: |
32569 次 |
| 最近记录: |