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());
}
}
}