Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reloading/Refreshing Spring configuration file without restarting the servlet container

Tags:

spring

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

I am looking for a solution other than JRebel.

like image 991
user64752 Avatar asked Feb 10 '09 20:02

user64752


1 Answers

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.

like image 56
Dovmo Avatar answered Oct 03 '22 07:10

Dovmo