我有一个配置文件,其中包含JDBC连接的默认设置。
应用程序运行后是否有任何选项可以编辑此默认连接详细信息?在创建所有bean之后(编辑控制器中的连接详细信息)。
情景:
然后应该找到现有连接,更新连接详细信息并重新实例化bean。
答案 0 :(得分:0)
您可以尝试从Spring Container
删除bean并重新启动它们。
Demo demo = getBean(context);
ConfigurableListableBeanFactory configurableListableBeanFactory = context
.getBeanFactory();
BeanDefinitionRegistry beanDefinitionRegistry = (BeanDefinitionRegistry) configurableListableBeanFactory;
// Removing the bean from container
beanDefinitionRegistry.removeBeanDefinition("demo");
// Trying to obtains bean again from container. This will throw a null
demo = getBean(context);
//demo object will be null here
// Creating and registering bean to the container
BeanDefinition beanDefinition = new RootBeanDefinition(Demo.class);
beanDefinition.setAttribute("name", "name");
beanDefinitionRegistry.registerBeanDefinition("demo", beanDefinition);
context.refresh();
//Obtaining from container again
demo = getBean(context);