在SpringCloud中,我们会使用配置中心来对所有模块进行配置,并且可以使用spring-boot-starter-actuator 和 spring-cloud-config-server来实现热刷新。
同理,我们在单一的springboot上也可以使用它们来实现热加载。
首先引入它们的maven
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--配置热刷新依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
然后我们使用 @Value来获得配置里的值
@Getter
@Setter
@Value("${skip.enable}")
private Boolean enable;
在application.yml里我们设置它的值
skip:
enable: true
在需要侦测配置改变的类上加上 @RefreshScope
@Component
@Slf4j
@RefreshScope
public class ContractSkipSchedule {
@Getter
@Setter
@Value("${skip.enable}")
private Boolean enable;
完工,之后每一次对被侦测的类所引用的配置做出更改,bean就会刷新,新的配置就会生效