第0章:spring架构中几个概念/0.1 POJO:Plain old java objects/0.1.1 概念
- POJO:Plain old java objects
- 概念:指的是简单的java对象,也就是通常通过类创建的一些对象
- 目的:简化Java应用程序的编码、测试和部署等阶段
第0章:spring架构中几个概念/0.1 POJO:Plain old java objects/0.1.2 特点
- 特点:对比 第0章:spring架构中几个概念/0.2 EJB:企业Java Bean/0.2.2 EJB规范缺点
- 编写的类可以不依赖于任何接口或者API,这点和EJB不同
- 非常容易测试,因为它不依赖于任务的容器
- 部署过程也非常简便
第0章:spring架构中几个概念/0.2 EJB:企业Java Bean/0.2.1 EJB概念:类似于tomcat的容器
- EJB概念
- 概念:它是一种容器,类似于tomcat,它提供除了系统的业务逻辑外大多数的中间件服务,这些服务包括:
- 组件
- 事务管理
- 持久化操作
- 资源池
- 多线程
- 远程处理
- 安全性
第0章:spring架构中几个概念/0.2 EJB:企业Java Bean/0.2.2 EJB优点:丰富的中间件服务
- EJB优点:丰富的中间件服务
- 在应用程序外连接数据库
- 在应用程序中创建和装配组件
- 根据需要随时启动资源池功能
- 提供基础的事务管理架构
- 以声明的方式启动事务管理
- 提供系统安全约束
- 处理多线程和调度问题
第0章:spring架构中几个概念/0.2 EJB:企业Java Bean/0.2.3 EJB缺点
- EJB规范缺点
- 强制要求组件接口和业务逻辑实现类都必须从EJB框架中继承,这使得业务系统和EJB框架产生了紧密的耦合性
- 必须实现几个没有必要的回调接口
- ejbCreate
- ejbPassivate
- ejbActivate
- 难以在EJB容器外测试Session或者Bean,因为这些对EJB产生了依赖
- 部署EJB也是件困难的事情,因为配置文件非常庞大,并且EJB之间存在相互依赖
第0章:spring架构中几个概念/0.3 JNDI(命名目录服务):显式查找
- JNDI:命名目录服务
- 用于查找资源,比如:EJB本地对象或者数据库对象
- 举例:
- 查找EJB本地对象:
- 查询数据库对象:
- 查找EJB本地对象:
第0章:spring架构中几个概念/0.4 RMI:远程方法调用
- RMI:远程方法调用
- EJB容器中要求必须通过RMI方式进行方法调用,就算两个容器位于同一个服务器事例也是一样,这样会造成不必要的性能开销
- 示例图:
- 在同一个应用程序实例中,web容器也要通过RMI调用EJB容器
第0章:spring架构中几个概念/0.5 容器/0.5.1 概念
- 概念
- 指的是独立于业务系统之外为应用提供的一些必不可少的组件和功能
- 注意:一个WEB应用可以完全不用容器的容器下进行应用开发,本质就是http请求和http请求的处理,当然中间还有多线程处理和调度问题,资源管理和回收问题
第0章:spring架构中几个概念/0.5 容器/0.5.2 容器分类
- 容器分类
- servlet容器:
- tomcat
- weblogic
- 业务层容器(重量级容器):EJB
- 轻量级容器:spring application framework
第0章:spring架构中几个概念/0.5 容器/0.5.3 容器最起码提供的功能
- 容器最起码提供的功能
- 请求或者响应声明周期管理
- 应用程序配置加载
- 依赖解析
- 组件查找
- 线程管理
第0章:spring架构中几个概念/0.5 容器/0.5.4 容器扩展功能
- 容器扩展功能
- 事务管理
- 对象和资源池
- 组件的远程访问
- 容器扩展和定制
第0章:spring架构中几个概念/0.5 容器/0.5.5 容器提供服务的形式
- 容器提供服务的形式
- 通过接口的形式提供服务,而且应用程序不需要知道具体的实现类,比如tomcat以下两个类,它只提供接口,具体的实现由tomcat实现
- 第0章:Servlet相关类/0.5 javax.servlet.ServletRequest接口
- 第0章:Servlet相关类/0.6 javax.servlet.http.HttpServletRequest接口
第0章:spring架构中几个概念/0.6 IOC:控制反转/0.6.1 概念
- 概念
- 全称是:inversion of controll,简称是IOC,它类似于 第0章:spring架构中几个概念/0.5 容器/0.5.5 容器提供服务的形式,不同的是对于组件(对于业务逻辑来说,它也是POJO对象: 第0章:spring架构中几个概念/0.1 POJO:Plain old java objects/0.1.1 概念),对象的初始化操作由容器负责完成,而类本身的定义还是由开发实现
第0章:spring架构中几个概念/0.6 IOC:控制反转/0.6.2 提供的功能/0.6.2.1 依赖查找:隐式查找
- 依赖查找
-
- 概念:指的是容器向管理组件提供回调方法,让组件获取它们的依赖项
- 实现方式:通常通过上下文查找
- 举例:
-
- 类CA中有两个接口属性:IB和IC,也是说CA依赖于IB和IC,对于IB和IC的具体实现类可以通过容器的上下文方式进行查找,具体方式后面会详细说明
- 对比: 第0章:spring架构中几个概念/0.3 JNDI(命名目录服务):显式查找
-
第0章:spring架构中几个概念/0.6 IOC:控制反转/0.6.2 提供的功能/0.6.2.2 依赖注入
- 依赖注入
- 注入概念理解:容器通过某种方式将相关的实现类与接口绑定起来
- 注入分类:
- 构造方法注入:比如CA类的构造方法有 CA(IB ib,IC ic),参数分别对应CA中的接口属性:IB、IC
- setter方法注入:比如在CA类中实现方法setter方法:
void setter(IB ib){
this. ib = ib;
}
第0章:spring架构中几个概念/0.7 J2EE概念
- J2EE概念
- 全称:Java 2 Enterprise Edition
- 指的是将多种不同技术融合在一起形成的企业级Java环境
第0章:spring架构中几个概念/0.8 Java EE概念
- Java EE概念
- 针对 第0章:spring架构中几个概念/0.7 J2EE概念在Java 5 发布之后修改的名称
第0章:spring架构中几个概念/0.9 Bean概念
- Bean概念
- 概念:在spring框架中通过依赖注入 第0章:spring架构中几个概念/0.6 IOC:控制反转/0.6.2 提供的功能/0.6.2.2 依赖注入实现的对象都称为Bean对象
第0章:spring架构中几个概念/0.10 ORM概念
- ORM概念
- ORM指的是对象关系映射(Object Relational Mapping),这里的“对象”指的是是JAVA对象,而“关系 ”指的是数据库表,“隐射”指的是JAVA对象到数据库表之间的操作
第0章:spring架构中几个概念/0.11 JPA概念
- JPA概念
- JPA指的是JAVA Perisistence API(Perisistence 是数据库持久化的意思),它定义了在ORM( 第0章:spring架构中几个概念/0.10 ORM概念)工具中如何进行持久化操作
第0章:spring架构中几个概念/0.12 JDO概念
- JDO概念
- JDO指的是Java数据对象(Java Data Objects)
第0章:spring架构中几个概念/0.12 JTA概念
- JTA概念
- JTA指的是事务处理构架(Java Transaction Architecture)