Reloading/Refreshing Spring configuration file without restarting the servlet container

后端 未结 4 1143
轮回少年
轮回少年 2020-11-30 04:43

How can I refresh Spring configuration file without restarting my servlet container?

I am looking for a solution other than JRebel.

4条回答
  •  天命终不由人
    2020-11-30 05:21

    For those stumbling on this more recently -- the current and modern way to solve this problem is to use Spring Boot's Cloud Config.

    Just add the @RefreshScope annotation on your refreshable beans and @EnableConfigServer on your main/configuration.

    So, for example, this Controller class:

    @RefreshScope
    @RestController
    class MessageRestController {
    
        @Value("${message}")
        private String message;
    
        @RequestMapping("/message")
        String getMessage() {
            return this.message;
        }
    }
    

    Will return the new value of your message String property for the /message endpoint when refresh is invoked on Spring Boot Actuator (via HTTP endpoint or JMX).

    See the official Spring Guide for Centralized Configuration example for more implementation details.

提交回复
热议问题