我需要在spring boot应用程序中设置系统属性。我不想从命令行设置它。
我关心的是什么是这样做的最佳实践。从构造函数或内部main方法。下面是从构造函数设置它的示例
@SpringBootApplication
class Sample{
@Autowired
protected TempInfoDao tempInfoDao;
public Sample{
//Setting System property inside constructor
System.setProperty("vertx.hazelcast.config","./config/cluster.xml");
}
/**
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(Sample.class, args);
}
}
最好的方法是什么?
发布于 2018-08-16 08:56:34
从Java代码内部设置系统变量不是一个好主意。从根本上说,变量是为了让代码不再有任何变量值。
使用属性文件来存储您的配置。Spring Boot将您的配置外部化的工作做得很好。它还允许您将环境配置放在单独的文件中,并完成很好的初始化工作。
请参阅https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
发布于 2018-08-16 13:40:46
在构造函数中设置系统属性不是一个好方法。
你可以使用一个单独的类和spring注解来做到这一点,如下所示。
@Profile("production")
@Component
public class ProductionPropertySetter {
@PostConstruct
public void setProperty() {
System.setProperty("http.maxConnections", 15);
}
}
https://stackoverflow.com/questions/51867161
复制相似问题