读书笔记:一

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

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

在经典javaEE应用中,DAO层也被称为EAO层,EAO层组件的作用与DAO层组件的作用基本相似。只是EAO层主要完成对实体(Entity)的CRUD操作。DAO层在mybatis中也被称为mapper层,其通过sql语句的映射完成CRUD操作。

Service层:业务层,此层有一系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。

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

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

读书笔记:一_第1张图片

JAVA EE应用的组件

表现层组件:主要负责收集用户输入数据,或者向客户显示系统状态。最常见的表现和Tapestry等技术完成,或者使用普通的应用程序充当表现层组件,甚至可以是小型智能设备。

控制器组件:对于JAVAEE的mvc框架,其提供一个前端核心控制器,核心控制器负责拦截用户请求,并将请求转发给用户实现的控制器组件。这些用户实现的控制器组件负责调用业务逻辑方法,处理用户请求。

业务逻辑组件:系统的核心组件,实现系统的业务逻辑。通常,一个业务逻辑方法对应一次用户操作。一个业务逻辑方法应该是一个整体,因此要求对业务逻辑方法增加事务性。业务逻辑方法仅仅负责实现业务逻辑,不应该进行数据库访问。

DAO组件:每个DAO组件都提供Domain Object对象基本的创建、查询、更新和删除等操作,这些操作对应于数据库的CRUD(创建、查询、更新和删除)等原子操作。

领域对象组件:领域对象(Domain object)抽象了系统的对象模型。通常而言,这些领域对象的状态都必须保存在数据库里。

因此,每个领域对象通常对应一个或多个数据表。

JSP、Servlet和JAVABean及代替技术

jsp是最早的javaEE规范之一,也是最经典的JAVAEE技术之一。

Servlet和JSP其实完全统一的,二者底层的运行原理是完全一样的。

在严格的JAVAEE的应用中,中间层的组件会将应用底层的状态信息封装成JAVAbean集,这些javabean也被称为DTO(Data Transfer object,数据传输对象),并将这些DTO传到JSP页面,从而让JSP可以显示应用的底层状态。

Mybatis3及其代替技术

传统的javay应用都是采用JDBC来访问数据库的,但传统的JDBC采用的是一种基于SQL的操作方式,这种操作方式与java语言的面相对象特性不太一致,所以JAVA EE应用需要一种技术,通过这种技术能让java以面向对象的方式操作关系数据库。

ORM(object relation mapping):最早的ORM是Entity EJ(Enterprise JavaBean),EJB就是经典JAVAEE应用的核心。

Hibernate 是一种开源的轻量级的ORM框架,它允许将普通的、传统的java对象映射成持久化类,允许应用程序以面相对象的方式来操作POJO,而Hibernate框架负责将这种操作转换成底层的SQL操作。

在特定条件下,Hibernate这种一站式的解决方案却未必适合。:

(1)系统的部分或全部数据来自现有数据库,出于安全考虑,只对开发团队提供几条select sql (或存储过程)以获取所需数据,具体的表结构不给予公开

(2)开发规范中要求,所有涉及到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就金融行业而言)

 (3)系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的sql语句(或存储过程)才能达到系统性能设计指标。

半自动ORM框架 mybatsi,作为持久层框架,其主要思想是将程序中的大量sql语句剥离出来,配置在配置文件中,实现sql的灵活配置。这样做的好处是将sql与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改sql.

真实的企业应用开发有两个重要的关注点:可维护性和复用。

你可能感兴趣的:(JAVA,EE)