1. 首先要有一个配置文件beans.properties:
memberDao=com.gathershell.daoImpl.MemberDaoImpl
2. Java代码:
public class BeanUtil {
private static Properties props;
static{
props=new Properties();
try {
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("beans.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static <T> TgetBean(Class<T> beanClass){
String name=((Class)beanClass).getSimpleName();
StringbeanName=name.substring(0, 1).toLowerCase()+name.substring(1);
T bean = null;
try {
bean = (T)Class.forName(props.getProperty(beanName)).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return bean;
}
}
上面首先读取配置文件,被调用时创建出所需对象。
3. 客户端调用:
public void memberDaoTest(){
MemberDao memberDao=BeanUtil.getBean(MemberDao.class);
System.out.println(memberDao);
}
不必强制类型转换。
4. 约定
上面的代码要能正常运行,配置文件的key必需是所要类简单名称的首字母小写。如类MemberDao,在配置文件中key为memberDao.