我正在尝试使用actuator刷新刷新作用域bean。需要刷新的类:
@ConfigurationProperties(prefix = "push-sync")
@RefreshScope
public class PushSyncProperties {
private boolean available = true;
private int maxSyncThreads = 5;
private int maxRequestsPerSecond = 5;
private int maxRetries = 10;
private long initialRetryDelay = 7 * 1000L;
private long maxRetryDelay = 8 * 60 * 60 * 1000L;
private int retryBackOffMultiplier = 3;
private long dbCheckInterval = 10 * 1000L;
@PostConstruct
public void refresh()
{
log.info("Application Refreshed!");
log.info(String.valueOf(maxSyncThreads));
}
pom的一部分
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
还有主课
@EnableConfigurationProperties({PushSyncProperties.class})
@EnableScheduling
@PropertySource("file:${push.sync.config}")
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
String pushSyncConfigPath = SystemProperties.get("push.sync.config");
return application.sources(Application.class)
.properties(
"spring.config.location:classpath:/application.yml, " + pushSyncConfigPath
);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
但是,每当更改Map我的属性类的特定文件中的属性时,都会调用postconstruct函数,但该值永远不会更新。知道为什么吗?
暂无答案!
目前还没有任何答案,快来回答吧!