不管是经典的 Java EE 架构,还是轻量级 Java EE 架构,大致都可分为如下几层:

Domain Object(领域对象)层。此层由一系列的 POJO(Plain Old Java Object,普通的、传统的Java对象)组成,这些对象是该系统的 Domain Object(领域对象),往往包含了各自所需实现的业务逻辑方法。

DAO(Data Access Object,数据访问对象)层。此层由一系列的 DAO 组件组成,这些DAO 实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作。

Service(业务逻辑)层。此层由一系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能仅仅用于暴露 Domain Object 对象所实现的业务逻辑方法,也可能是依赖 DAO 组件实现的业务逻辑方法。

Controller(控制器)层。此层由一系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果向不同的表现层组件转发。

View(表现)层。此层由一系列的 JSP 页面、Velocity 页面、PDF 文档视图组件组成,负责收集用户请求,并显示处理结果。

大致上,Java EE 应用的架构如下图所示。

java架构 思维导图 javaee架构图_Java


各层的 Java EE 组件之间以松耦合的方式耦合在一起,各组件之间并不以硬编码方式耦合,这种方式是为了应用以后的扩展性。从上向下,上面组件的实现依赖于下面组件的功能;从下向上,下面组件支持上面组件的实现。