您的位置:首页 > 编程语言 > Java开发

spring动态加入bean

2016-12-06 17:56 267 查看
package com.jd.testjsf;

import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DynamicSpringRegister {

public static void main(String[] args) {

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "/spring.xml");
ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) context;
BeanDefinitionRegistry registry = (BeanDefinitionRegistry)configurableApplicationContext.getBeanFactory();
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(House.class)
.setInitMethodName("init");
registry.registerBeanDefinition("house", builder.getRawBeanDefinition());
String[] beanNames = context.getBeanDefinitionNames();
for(String beanName:beanNames){
System.err.println(context.getBean(beanName));
if(beanName.equals("house")){
House house = (House) context.getBean(beanName);
house.print();
}
}
context.close();
}

}

class House{

private int square;

public void init(){
this.square=100;
}

public void print(){
System.out.println(square);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: