不使用new 进行创建实例对象
public class BeanFactory {
private static ResourceBundle bundle;
static {
// 加载配置文件
bundle = ResourceBundle.getBundle("applicationContext");
String userService = bundle.getString("userService");
System.out.println("userService = " + userService);
}
public static UserService getUserServiceImpl() {
UserService userService = null;
try {
Class> clazz = Class.forName(bundle.getString("userService"));
userService = (UserService) clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return userService;
}
public static UserMapper getUserMapperImpl() {
UserMapper userMapper = null;
try {
Class> clazz = Class.forName(bundle.getString("userMapper"));
userMapper = (UserMapper) clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return userMapper;
}
}
通过使用泛型对工厂进一步优化
public class NewBeanFactory {
private static ResourceBundle bundle;
static {
// 加载配置文件
bundle = ResourceBundle.getBundle("applicationContext");
String userService = bundle.getString("userService");
System.out.println("userService = " + userService);
}
public static Object getBean(String key) {
Object object = null;
try {
Class> clazz = Class.forName(bundle.getString(key));
object = clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return object;
}
// 泛型
public static T getBean(String key,Class tClass) {
Object object = null;
T cast=null;
try {
Class> clazz = Class.forName(bundle.getString(key));
object = clazz.newInstance();
cast = tClass.cast(object);
} catch (Exception e) {
e.printStackTrace();
}
return cast;
}
}
使用Spring管理
1.引入依赖
org.springframework
spring-context
5.3.20
2.创建配置文件applicationContext



