在运行时更新属性文件的值

时间:2017-02-09 04:38:44

标签: java spring-mvc spring-boot properties-file

我的配置如下:

@Configuration
public class PropertyConfiguration {

    @Bean
    @Profile("local")
    public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer() {
        PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
        configurer.setLocation(new FileSystemResource("path/to/resources/app-local.properties"));
        configurer.setIgnoreUnresolvablePlaceholders(true);
        return configurer;
    }
}

我的app-local.properties文件包含以下值:

cache.time.milliseconds=1000

所以,我访问的值为:

    @Value("${cache.time.milliseconds}")
    private long cachingTime;

我得到了正确的价值。

System.out.println(cachingTime);

现在,我想将cachingTime更新为其他值并提供更新后的值。例如,从1000到99。

有没有办法在运行时更新此属性值?

或者除了重新启动应用程序或服务器之外,还有其他方法可以更新此值吗?

我使用的是Spring Boot 1.4.3.RELEASE。

我试图谷歌,但没有一个答案给了我解决方案。 :(

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果要更改属性文件的值,它将不会影响运行时,因为所有配置都是在服务器启动时完成的,如果您不想重新部署代码库,则可以执行一项操作,更改属性文件值,然后重新启动服务器。

答案 1 :(得分:0)

您可以查看一次spring-boot管理员。虽然它充当监视服务器,但它使您能够更新属性和环境变量。

http://codecentric.github.io/spring-boot-admin/1.5.3/

附上一个截图,由代码中心人员提供概念证明。

enter image description here