1. Java EE 应用的分层模型
各层之间以松耦合的方式组织在一起。
从上向下,上面组件的实现依赖于下面组件的功能;
从下向上,下面组件支持上面组件的实现;
- Domain Object 层。领域对象层由一系列的POJO(Plain Old Java Object, 普通的、传统的java对象)组成,这些对象往往包含各自的业务逻辑方法。
- DAO 层。数据对象访问层(Data Access Object)由一系列的DAO组件组成,实现了对数据库的增、删、查、改(CRUD)等原子操作。
- Service 层。业务逻辑层由一系列的业务逻辑对象组成,实现了系统所需的业务逻辑方法。这些方法可能仅用于暴露Domain Object对象的业务逻辑方法,也可能依赖DAO组件实现的业务逻辑方法。
- Controller 层。控制层由一系列控制器组成,这些控制器用于拦截用于要求,并调用业务逻辑组件来处理用于请求,按照要求向不同的表现层组件转发。
- View 层。表现层由一系列的JSP页面、Velocity页面、PDF文档试图组件组成,负责收集用户请求,并显示处理结果。
2. MyBatis 3 及替代技术
传统的Java应用都是采用JDBC来访问数据库的,是一种基于SQL的操作方式,这与Java语言的面向对象特性不一致,所以Java EE 应用就需要ORM(Object Relation Mapping) 技术, 让Java以面向对象的方式操作关系数据库。
- Hibernate,一种开源的、轻量级的 “全自动” ORM框架
- 允许将POJO映射成持久化类,
- 允许应用程序以面向对象的方式操作POJO
- MyBatis,一个轻量级持久层框架,“半自动” ORM框架
- 支持普通SQL查询、存储过程和高级映射
- 消除了几乎所有的JDBC代码和参数的手工设置过程以及对结果集的检索封装
3. Spring 5
- Spring 框架号称Java EE 应用的一站式解决方案。
- 该框架并未提供完整的持久层框架,但能与大部分持久层框架无缝整合:Mybatis、Hibernate、JPA、TopLink,甚至直接使用JDBC。
- 框架的实现充满了各种设计模式的应用,如单例模式、工厂模式、抽象工厂模式、命令模式、职责链模式、代理模式等