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.