如何在项目启动后初始化指定@Bean?
@Configuration
@EnableConfigurationProperties
public class RabbitMqConfig {
@Bean
public CachingConnectionFactory connectionFactory() {
//这里从数据库中读取MQ连接信息,包括(host,port,username,password)
CachingConnectionFactory connection = new CachingConnectionFactory();
connection.setAddresses(host+":"+port);
connection.setUsername(username);
connection.setPassword(password);
connection.setVirtualHost("/");
connection.setPublisherConfirms(true);
connection.setPublisherReturns(true);
return connection;
}
}
主要代码如上,目前的需求是,对方提供给我MQ连接信息,但是会不定期更新,所以不能直接写在properties中,目前是将MQ连接信息写入数据库,在项目启动时加载该Bean,从数据库中读取,并初始化。
但是问题是,如果MQ信息有更新,因为该Bean只在项目启动时加载一次,所以新的MQ信息并不会应用进来
所以想要进行一个判断操作
如果MQ连接失败,则初始化该指定Bean,重新从数据库中读取MQ连接信息并写入
请问这样的操作可以实现吗