EJB(Enterprise Java Bean)存在的问题:EJB 是重量级的框架。
-
运行环境苛刻
-
代码移植性差
Spring是⼀个轻量级的 JavaEE 解决方案,整合众多优秀的设计模式。
什么是轻量级?
- 对于运行环境是没有额外要求的;
开源:tomcat、resion、jetty
收费:weblogic、websphere
- 代码移植性高:不需要实现额外接口。
JavaEE 的解决方案:
整合设计模式:
-
工厂
-
代理
-
模板
-
策略
什么是设计模式?
-
⼴义概念:面向对象设计中,解决特定问题的经典代码。
-
狭义概念:GOF4人帮定义的23种设计模式:工厂、适配器、装饰器、门面、代理、模板…
什么是工厂设计模式?
User user = new User();
UserDAO userDAO = new UserDAOImpl();
- 好处:解耦合。
耦合:指定是代码间的强关联关系,⼀方的改变会影响到另⼀方;
问题:不利于代码维护;
UserService userService = new UserServiceImpl();
简单工厂的设计
package com.baizhiedu.basic;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class BeanFactory {
private static Properties env = new Properties();
static{
try {
//第一步 获得IO输入流
InputStream inputStream = BeanFactory.class.getResourceAsStream(“/applicationContext.properties”);
//第二步 文件内容 封装 Properties集合中 key = userService value = com.baizhixx.UserServiceImpl
env.load(inputStream);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/*
对象的创建方式:
-
直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();
-
通过反射的形式 创建对象 解耦合
Class clazz = Class.forName(“com.ba