自定义根据id创建bean实例

package com.itany.test;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import com.itany.bean.Person;

public class ClassPathXmlApplicationContextDemo {

private List<Person> perList=new ArrayList<Person>();
private Map<String, Object> personMap=new HashMap<String, Object>();

public ClassPathXmlApplicationContextDemo(String name){
readXML(name);
instanceBeans();
}
/**
* 创建实例,并且放进map里面
*/
public void instanceBeans(){
for(Person p:perList){
try {
personMap.put(p.getId(), Class.forName(p.getClassName()).newInstance());
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 读取xml文件
*/
private void readXML(String fileName){
try {
SAXReader reader=new SAXReader();
File f=new File(fileName);
Document doc=reader.read(f);
Element rootElt=doc.getRootElement();
Element elt=null;
for(Iterator it=rootElt.elementIterator();it.hasNext();){
elt=(Element) it.next();
String id=elt.attributeValue("id");
String className=elt.attributeValue("class");
Person p=new Person(id, className);
perList.add(p);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//获取bean实例
public Object getBean(String bean){
return personMap.get(bean);
}
}

posted @ 2016-05-22 15:03  爱上咖啡的唐  阅读(277)  评论(0编辑  收藏  举报