gpt4 book ai didi

java - @RefreshScope 可以渴望吗

转载 作者:行者123 更新时间:2023-12-01 20:19:34 25 4
gpt4 key购买 nike

Spring Cloud 中的新 @RefreshScope 很棒。但副作用是 Bean 变得延迟加载。大多数情况下,这不是问题,但急切加载的 bean 允许在启动时而不是稍后在运行时确保 DI、属性值设置等。有没有办法使用@RefreshScope并导致受影响的bean被急切地加载?

最佳答案

我通过实现一个捕获刷新事件的监听器解决了这个“问题”。然后我迭代上下文中的每个 bean 并调用 getClass() 方法。 (对 bean 的任何其他方法调用都将触发其实例化 - getClass() 很方便,因为它对于所有 bean 都存在。)

@Service
public class RefreshListener {

private final Logger logger = LoggerFactory.getLogger(RefreshListener.class);

@Autowired
ApplicationContext applicationContext;

@EventListener
public void onRefreshScopeRefreshed(final RefreshScopeRefreshedEvent event) {
logger.info("Received Refresh event. Refreshing all beans...");
for (String beanName : applicationContext.getBeanDefinitionNames()) {
logger.info("Refreshing bean " + beanName);
applicationContext.getBean(beanName).getClass();
}
}
}

希望有帮助。

关于java - @RefreshScope 可以渴望吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com