1.定义接口
public interface Action {
public void execute();
}
2.实现接口的类Test
public class Test implements Action{
public Test(){
System.out.println("test被实例化");
}
@Override
public void execute() {
System.out.println("方法被执行!");
}
}
3.工厂类FactoryBean
import java.io.FileInputStream;
import java.util.Properties;
public class BeanFactory {
//properties是map的子类
private Properties pros = new Properties();
public BeanFactory(String fileName) {
//通过路径fileName扫描资源文件
FileInputStream fis;
try {
fis = new FileInputStream(fileName);
pros.load(fis);
} catch (Exception e) {
e.printStackTrace();
}
}
public Object getBean(String beanName) {
String className = pros.getProperty(beanName);
Object obj = null;
//Class实例用于到文件扫描,将信息装载到该实例中
Class clazz;
try {
//找到并返回一个类存储在类型为Class的类里
clazz = Class.forName(className);//查找到资源文的"com.wjj.action.LoginAction"进行加载
obj = clazz.newInstance();//在这里实例化该类"com.wjj.action.LoginAction"
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}
public static void main(String[] args) {
BeanFactory fb = new BeanFactory("E://test.xml");
Action action = (Action)fb.getBean("test");
action.execute();
}
}
其中在test.xml
test=com.wjj.test.Test
4.结果
test被实例化
方法被执行