Spring引导编辑应用程序.properties
是否可以将新的Spring引导编辑应用程序.properties,properties,spring-boot,persistence,Properties,Spring Boot,Persistence,是否可以将新的属性添加到应用程序。属性或覆盖现有值 resource = new ClassPathResource("/application.properties"); Properties props = PropertiesLoaderUtils.loadProperties(resource); 我已经尝试过的事情: 使用存储: 然后,当我使用props.get(key)时,它会打印正确的值,但下次我使用 Properties props = PropertiesLoaderUtil
属性
添加到应用程序。属性
或覆盖现有值
resource = new ClassPathResource("/application.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
我已经尝试过的事情:
使用存储
:
然后,当我使用props.get(key)
时,它会打印正确的值,但下次我使用
Properties props = PropertiesLoaderUtils.loadProperties(resource);
它不在那里
那么我做错什么了吗?或者有其他方法可以做到这一点吗?不,你不能。为什么,
application.properties
可能是jar的一部分,您不能在运行应用程序时更改它的内容。但是,首先为什么要这样做呢?在我的属性中,我有一个示例:cron.expression=0 0/7***
,它定义了执行计划任务的时间。但是我需要改变执行时间的可能性(例如,perrestapi
),仅仅改变属性就不存在了。您需要重新启动应用程序才能实现这一点。好的,谢谢。然后我将尝试找到另一个解决方案Spring Cloud配置已经支持这一点…不,你不能。为什么,application.properties
可能是jar的一部分,您不能在运行应用程序时更改它的内容。但是,首先为什么要这样做呢?在我的属性中,我有一个示例:cron.expression=0 0/7***
,它定义了执行计划任务的时间。但是我需要改变执行时间的可能性(例如,perrestapi
),仅仅改变属性就不存在了。您需要重新启动应用程序才能实现这一点。好的,谢谢。然后我将尝试找到另一个解决方案Spring Cloud配置已经支持该解决方案。。。
@Autowired
ConfigurableEnvironment env;
...
props.put("spring.datasource.url", "<my value>");
environment.getPropertySources().addFirst(new PropertiesPropertySource("myProps", props));
Properties props = PropertiesLoaderUtils.loadProperties(resource);