我有一个要求,在JavaCode中运行时获取DB URI,DB URL等。此值需要可供 application.properties 使用,以便进行数据库调用。
我总是使用 Spring boot 来检索在 application.properties 文件中分配的值,而不是其他方式 我如何实现类似的 db.uri = {comingFromJavaCode}
您的问题已经在这个堆栈溢出线程中得到了回答。在春季写入/更新属性文件值
顺便说一下,在启动期间,spring启动应用程序只读取一次application.properties文件。在运行时向文件添加任何新值都不起作用。以下堆栈溢出线程说明了如何在加载时重新加载application.properties
文件。如何使用注释在 Spring 4 中重新加载属性文件? .本文也可以使用: https://docs.spring.io/spring/docs/3.2.6.RELEASE/javadoc-api/org/springframework/context/support/ReloadableResourceBundleMessageSource.html
在 Spring Boot 中,您可以使用System.setProperty(String key, String value)
以编程方式添加或更新 application.properties 中的属性
@SpringBootApplication
public class SpringBootTestApplication {
public static void main(String[] args) {
System.setProperty("key", "value");
SpringApplication.run(SpringBootTestApplication.class, args);
}
}
注意:使用 System.setProperty(字符串键、字符串值(定义的值优先于 application.properties 文件中的值