Spring 动态加载bean

1,获得spring容器:

import org.springframework.web.context.ContextLoader;    
import org.springframework.web.context.WebApplicationContext;    

WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();    
 wac.getBean("");   

2,动态加载bean

//将applicationContext转换为ConfigurableApplicationContext  
ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext;  

// 获取bean工厂并转换为DefaultListableBeanFactory  
DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) configurableApplicationContext  
        .getBeanFactory();  

// 通过BeanDefinitionBuilder创建bean定义  
BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder  
        .genericBeanDefinition(UserService.class);  
// 设置属性userAcctDAO,此属性引用已经定义的bean:userAcctDAO  
beanDefinitionBuilder  
        .addPropertyReference("userAcctDAO", "UserAcctDAO");  

// 注册bean  
defaultListableBeanFactory.registerBeanDefinition("sdfds",  
        beanDefinitionBuilder.getRawBeanDefinition());  

猜你喜欢

转载自blog.csdn.net/zhou8622/article/details/77505824