简单工厂模式
导入依赖
<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 UserService getUserService(){
UserService userService = null;
try {
Class<?> clazz = Class.forName(env.getProperty("userService"));
userService = (UserService) clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return userService;
}
public static UserDao getUserDao(){
UserDao userDao = null;
try {
Class<?> clazz = Class.forName(env.getProperty("userDao"));
userDao = (UserDao) clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return userDao;
}
}
配置文件
在resource下建立applicationContext.properties文件
userService = top.xuankong.service.UserServiceImpl
userDao = top.xuankong.Dao.UserDaoImpl
测试
@Test
public void test(){
UserDao userDao = BeanFactory.getUserDao();
UserService userService = BeanFactory.getUserService();
System.out.println(userDao);
System.out.println(userService);
}
输出结果:
top.xuankong.Dao.UserDaoImpl@66cd51c3 top.xuankong.service.UserServiceImpl@4dcbadb4