业务逻辑和数据库访问决策
这里有2种完全不同的方法来设计JAVA企业程序,其中一种选择是采用标准EJB2实现途径(approach)。我更愿意称这种方法为重量级实现途径,当你使用重量级实现途径时你需要用会话beans(session bean)和消息驱动 beans(message-driven bean)去实现业务逻辑。你也可以使用DAOs(data aclearcase/" target="_blank" >ccess object)或者实体bean去访问业务逻辑
另外一种选择是使用POJOs 和轻量级构架,这种方式我称为POJO实现途径。当使用POJOs实现途径时,你的业务逻辑完全由POJO来实现。你可以使用持久型构架又叫做对象/关系映射构架(a.k.a=also know as )例如Hibernate 或者 JDO来访问数据库,再用Spring AOP(面向层面编程)来提供企业服务,比如事务管理和安全。
EJB3由于融合了POJOs和其他一些轻量级概念,所以对两者(指轻量级和重考锻揪叮┑那�分不是很清楚。举个例子,POJO中的实体bean既可以再EJB容器内运行,也可以再EJB容器外运行,然而POJOs中的会话bean和消息驱动bean仍然有重量级的行为,因为他们只能在EJB容器内部运行。所以,显而易见的,EJB3既是重量级的又有POJO的特性。EJB3中的实体bean是轻量级实现途径中的一部分。
在开发过程中,首要的是从各种各样的设计中选择到底采用重量级实现途径还是采用POJO实现途径。决策可以影响程序的几个方面,包括业务逻辑结构和数据访问机制。为了帮助从两种实现途径中择其一,来看这张典型的企业应用程序结构图,结构图在图示1中,而且在设计过程中就必须判断到底使用那种策略。
Figure 1. A typical application architecture and the key business logic and database access design decisions.
程序由网络基本表示层、业务层、持久层组成。网络基本表示层负责HTTP请求和为一般的浏览器客户端、XML和其他的胖体客户端生成HTML,比如为Ajax基本客户端生成HTML.业务层被表示层调用,用来实现程序业务逻辑。持久层被业务逻辑层用来访问外部数据源,比如数据库和其他程序。