在项目中有时会有这样的需求:要求在程序运行时动态注入javaBean,显然新加的Bean不能写在Spring的配置文件中。
因为配置文件修改后需要重启服务器。还好spring为我们提供了动态注入bean的接口:
//由配置文件得到
applicationContext
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("applicationContext.xml");
BeanDefinition bean = new GenericBeanDefinition();
//类的全路径
bean.setBeanClassName("com.xh.spring.bean.Dog");
DefaultListableBeanFactory fty = (DefaultListableBeanFactory) applicationContext.getAutowireCapableBeanFactory();
//注册Bean
fty.registerBeanDefinition("dog101", bean);
//以后便可以取出Bean了
Dog mydog = (Dog)applicationContext.getBean("dog101");
mydog.setColor("red");
mydog.setName("tom");
System.out.println(mydog.ww());