11-1第一章JavaEE体系架构概述21-2目标JavaWeb应用的缺陷什么是企业级应用JavaEE体系平台核心思想EJB组件和容器POJO与轻量级框架31-3JavaWeb应用回顾逻辑分层41-4Web应用的缺陷-分布式应用分布式应用环境下,客户组件能访问订单组件吗?Web应用系统缺乏对分布式组件对象的访问支持51-5Web应用的缺陷–事务处理Connectionconn=DriverManager.getConnection();conn.setAutoCommit(false);//更改JDBC事务的默认提交方式...pstmt=conn.prepareStatement(UPDATEMOVIES...);...conn.commit();//提交JDBC事务...con.rollBack();//回滚JDBC事务JDBC能够跨数据库实现事务处理吗?JDBC无法解决类似的企业应用问题61-6什么是企业级应用现代企业级应用应当具有如下需求–并发支持–事务支持–交互支持–集群支持–安全支持–分布式支持–Web支持这些企业级应用需求如何解决?71-7Sun公司的解决方案JavaEEJavaEE(JavaEnterpriseEdition)JavaEE技术平台的核心思想是“容器”加“组件”81-8EJB组件业务逻辑放在系统的什么地方最合适?JavaWeb应用中我们使用JavaBean来实现业务逻辑JavaEE中使用EJB组件实现业务逻辑91-9EJB组件的分类这些EJB组件能够解决复杂的企业级应用需求吗?101-10EJB容器JavaEE规范采用EJB容器来解决复杂的企业级应用,为EJB组件提供服务111-11EJB容器与EJB组件协同工作EJB容器会介入到客户和EJB组件之间,插入一些“服务”121-12JavaEE核心技术简介JavaEE规范为企业级应用提供了一整套服务、应用程序接口API和协议技术:–JavaMail(邮件服务)–RMI-IIOP(RemoteMethodInvoke)–Java事务API(JTA)和Java事务服务(JTS)–JPA(JavaPersistenceAPI)–IDL(JavaInterfaceDefilationLanguage)–JMS(JavaMessageService)–STAX–WebService–JNDI(JavaNameandDirectoryInterface)功能齐全,很强大!131-13JavaEE标准结构的缺陷EJB设计缺陷EJB开发的问题–编辑、编译、调试周期长–编码冗长、繁琐–必须编写数据传输对象面向过程有这么多的问题,那JavaEE真正的强大之处在哪里?JavaEE真正的强大之处在于服务,如:JNDI、JTA等等141-14POJO和轻量级框架没有EJB我们照样可以使用JavaEE提供的服务使用POJO(PlainOldJavaObjects)简单的Java对象替代EJBPOJO如何实现企业级应用需求呢?替代方案就是采用目前流行的“轻量级”框架。这些“轻量级”框架与JavaEE的某些部分结合在一起提供重要的企业服务151-15使用POJO面向对象设计POJO可以采用面向对象设计围绕对象模型编写而不是去围绕方法编程161-16POJO持久化持久层框架提供透明持久化,业务层应用程序只需要调用持久层框架的API就可以保存、查询和删除持久对象了。持久层框架会使用O/R(对象/关系)映射自动生成访问数据库的SQL语句。另外,持久层框架能在服务器外面运行,不需要将其部署到应用服务器中171-17POJO事务管理使用POJO替代EJB,就应该使用EJB和EJB容器相同的机制来管理事务,这个任务交给了Spring框架。181-18EJB与POJO之间的差异EJBPOJO组织按照过程式设计按照面向对象设计访问数据库JDBC/SQL、实体Bean持久层框架事务管理EJB容器事务管理Spring框架返回数据DTO业务对象应用程序组装JNDI查询依赖注入191-19基于POJO的层次结构201-20基于WebService的分布式应用EJB所提供的远程方法调用RMI可以解决由远程客户端发起的分布式应用。但是RMI是JavaEE平台所独有的协议,如果分布式应用是异构平台怎么办?Webservices是建立可互操作的分布式应用程序的新平台211-21总结JavaWeb应用无法处理复杂的企业级应用Sun公司制定了一个受业界广泛支持的标准规范—JavaEEJavaEE技术平台的核心思想是“容器”加“组件”JavaEE规范采用EJB容器来解决复杂的企业级应用,为EJB组件提供分布式处理和事务处理等服务。EJB是基于过程式设计的EJB开发调式周期长、编码繁琐、需要编写大量的DTO对象POJO基于面向对象编程可以作为EJB的替代品POJO的持久化可以采用大量的持久层框架。如Hibernate、iBATIS等Spring可以对POJO提供事务处理WebService为我们提供了一个平台无关性的分布式应用方案