通用工厂
导入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
工厂类
public class BeanFactory {
private static Properties env = new Properties();
static {
try {
InputStream inputStream = BeanFactory.class.getResourceAsStream("/applicationContext.properties");
env.load(inputStream);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Object getBean(String key){
Object object = null;
try {
Class<?> clazz = Class.forName(env.getProperty(key));
object = clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return object;
}
}
配置文件
在Resouce下建立applicationContext.properties文件
userService = top.xuankong.service.UserServiceImpl
userDao = top.xuankong.Dao.UserDaoImpl
测试
@Test
public void test(){
UserDao userDao = (UserDao) BeanFactory.getBean("userDao");
UserService userService = (UserService) BeanFactory.getBean("userService");
System.out.println(userDao);
System.out.println(userService);
}
输出结果:
top.xuankong.Dao.UserDaoImpl@4e515669 top.xuankong.service.UserServiceImpl@17d10166