我正在尝试用领事配置设置micronaut服务。当服务启动时,它使用键值存储提供的值成功初始化bean的属性。但是,即使刷新是手动触发的,当值更改时也不会重新加载。这是豆子:
@Refreshable
public class ConfigBean {
@Property(name = "welcome-message")
private String message = "doe!";
@PostConstruct
public void init() {
String text = this + "Scattered Clouds " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MMM/yy HH:mm.ss.SSS"));
System.out.println(text + "\r\n" + this.message);
}
}
下面是简单的控制器端点:
@Controller("/p")
public class Controller {
@Inject
ApplicationContext applicationContext;
@Inject
private ConfigBean config;
@Get("/r")
@Produces(MediaType.TEXT_PLAIN)
public String refresh() {
applicationContext.publishEvent(new RefreshEvent());
return "Hello World";
}
@Get("/m")
@Produces(MediaType.TEXT_PLAIN)
public String message() {
return config.getMessage();
}
}
有了这个代码
值已成功从配置存储解析并在导航到时显示localhost:8080/p/m
当得到localhost:8080/p/r 有趣的是,对于手动刷新,会调用config bean的init()方法,但不会更新message属性中的值
需要什么来重新触发bean的更新?是否有一个隐式调用可以用来清除配置缓存以便再次获取它?
关于这方面的文档有点少(使用了2.2.0版),提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!