spring卸载bean重新注册bean

spring卸载重新动态载入bean

import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;


public class CustomBeanFactoryUtil
{
    public static void reflushBean() {
        WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
        UserService testService = wac.getBean("userService", UserService.class);
        if(null != testService) {
            System.err.println("-----第一次------"+testService.page);
        }
        
        //获取BeanFactory  
        DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) wac.getAutowireCapableBeanFactory();  
        
        //删除bean.  
        defaultListableBeanFactory.removeBeanDefinition("userService"); 
        
        //创建bean信息.  
        BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(UserServiceImpl.class); 
        
        //动态注册bean.  
        defaultListableBeanFactory.registerBeanDefinition("userService", beanDefinitionBuilder.getBeanDefinition());  
        
        UserService testService3 = wac.getBean("userService", UserService.class);
        if(null != testService3) {
            System.err.println("-----第一次------"+testService3.toString());
        }
    }
}
 

发布了52 篇原创文章 · 获赞 16 · 访问量 67万+

猜你喜欢

转载自blog.csdn.net/qq_30920479/article/details/103409372