创建一个TestBean
package domain;
public class TestBean {
private String name;
public TestBean(){
}
public TestBean(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
创建工厂
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.*;
public class BeanFactory {
private Map<String,Object> map=new HashMap<String, Object>();
private InputStream in;
private Properties p;
private String path;
public BeanFactory(String propertiesPath){
path=propertiesPath;
init();
}
private void init(){
try {
in = new BufferedInputStream(BeanFactory.class.getClassLoader().getResourceAsStream(path));
p = new Properties();
p.load(in);
Enumeration enumMap=p.propertyNames();
while(enumMap.hasMoreElements()){
String key=(String)enumMap.nextElement();
String value=p.getProperty(key);
Object clazz=Class.forName(value).newInstance();
map.put(key,clazz);
}
System.out.println(p);
} catch (Exception e) {
e.printStackTrace();
}
}
public Object getBean(String id){
return map.get(id);
}
}
测试
import domain.TestBean;
public class App {
public static void main(String[] args) {
BeanFactory beanFactory= new BeanFactory("demo.properties");
TestBean testBean=(TestBean)beanFactory.getBean("testBean");
testBean.setName("op");
System.out.println(testBean.getName());
}
}