




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、经典经典Java EE课程课程段鹏松段鹏松整理课件对本课程所学内容的回顾对本课程所学内容的回顾掌握在掌握在JBoss下的整合开发下的整合开发掌握在掌握在Weblogic下的整合开发下的整合开发课程小结课程小结课程目标课程目标 本章节旨在把本课程所有的知识综合起来。本章节旨在把本课程所有的知识综合起来。 通过本章节的学习,要从整体上对经典通过本章节的学习,要从整体上对经典Java EE的构架有一个清晰的认识。的构架有一个清晰的认识。 整合概述:整合概述:Web层调用层调用Session Bean,Session Bean中再调用中再调用JPA。 在这个过程中需要用到大量的依赖注入。在这个过程中需
2、要用到大量的依赖注入。 Java EE应用的架构应用的架构 在在Web层访问层访问Session Bean 在在Web层使用层使用JPA 基于基于JBoss的整合开发的整合开发 基于基于Weblogic的整合开发的整合开发 课程小结课程小结基于基于Spring的应用结的应用结构构基于基于EJB3的应用结构的应用结构容器容器Spring容器容器应用服务器提供的容器应用服务器提供的容器数据源对象数据源对象通常由通常由Spring容器管容器管理理在在JPA的的persistence.xml中配中配置,由应用服务器管理置,由应用服务器管理数据库访问数据库访问对象对象DAO组件组件EAO组件组件业务逻辑
3、组业务逻辑组件件Spring容器中的容器中的BeanSession Bean控制器组件控制器组件 Spring管理的管理的ActionJSF的托管的托管Bean 基于基于Spring的应用结构和基于的应用结构和基于EJB3的应用的应用结构整体上差别不大,只是在各组件的实结构整体上差别不大,只是在各组件的实现技术上存在差异而已。现技术上存在差异而已。 由于由于EJB3是在是在Spring之后出现的,所以能之后出现的,所以能充分吸收充分吸收Spring的优势,功能更为强大。的优势,功能更为强大。 DAO:由一个接口和该接口的实现类组成,封:由一个接口和该接口的实现类组成,封装了数据库的装了数据库的
4、CRUD等原子操作,业务逻辑组件等原子操作,业务逻辑组件通过调用通过调用DAO组件来实现组件来实现 对数据库的操作。是对数据库的操作。是轻量级轻量级Java EE应用的常用做法。应用的常用做法。 EAO:EJB3中对中对DAO的替代组件,通常是一个的替代组件,通常是一个本地无状态本地无状态Session Bean。 DAO和和EAO的的区别区别: DAO组件操作的是组件操作的是Hibernate持久化对象持久化对象 EAO组件操作的是处于组件操作的是处于JPA管理之下的实体管理之下的实体 Facade设计模式的概念设计模式的概念 Facade(外观)模式为子系统中的各类(或结构与方法)提供外观
5、)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用使用(出自百度文库出自百度文库)。即当子系统复杂或者繁锁时,我们让子系。即当子系统复杂或者繁锁时,我们让子系统提供一个窗口,程序中称为接口,其它程序或者对象就通过这统提供一个窗口,程序中称为接口,其它程序或者对象就通过这个窗口个窗口(接口接口)与此子系统联系。接口可以是类或方法等。这样就与此子系统联系。接口可以是类或方法等。这样就简化了子系统的使用。简化了子系统的使用。 不管是不管是DAO还是还是EAO,通常不会与前端应,通常不会与前端应
6、用程序直接交互,而是在多个用程序直接交互,而是在多个DAO或或EAO组件之上再封装一层业务逻辑组件,该业组件之上再封装一层业务逻辑组件,该业务逻辑组件将直接和前端应用程序交互。务逻辑组件将直接和前端应用程序交互。 Java EE应用的架构应用的架构 在在Web层访问层访问Session Bean 在在Web层使用层使用JPA 基于基于JBoss的整合开发的整合开发 基于基于Weblogic的整合开发的整合开发 课程小结课程小结 对于已经处于容器管理之下的组件,若需对于已经处于容器管理之下的组件,若需要使用应用服务器中的要使用应用服务器中的Session Bean,可,可以让应用程序采用依赖注入
7、的方式将该以让应用程序采用依赖注入的方式将该Session Bean注入到该组件中。注入到该组件中。 对于不受应用服务器管理的应用组件,不对于不受应用服务器管理的应用组件,不能接受应用服务器的依赖注入,只能采用能接受应用服务器的依赖注入,只能采用查找查找JNDI名的方法来访问。名的方法来访问。组件类型组件类型是否接受依赖注入是否接受依赖注入Servlet、Filter、Listener是是JSP自定义标签处理类自定义标签处理类是是JSF的托管的托管Bean是是JSP页面、其他工具类、其页面、其他工具类、其他他MVC框架的控制器框架的控制器否否 .ear 0个或多个个或多个EJB-JAR包包 0
8、个或多个个或多个Web应用应用 META-INF NetBeans和和MyEclipse都支持创建完整的都支持创建完整的Java EE程序。程序。 实际操作演示实际操作演示 Web层使用以来注入访问层使用以来注入访问Session Bean是最简单、最容器的方式。是最简单、最容器的方式。 一般来说,接受容器管理的一般来说,接受容器管理的Web组件,都组件,都可以通过依赖注入来注入可以通过依赖注入来注入Session Bean,程序中是要使用程序中是要使用EJB修饰需要接受依赖修饰需要接受依赖注入的注入的Field即可。即可。 实际操作演示实际操作演示 对于对于JavaEE项目,不同的服务器访问
9、方式项目,不同的服务器访问方式有所不同:有所不同: Weblogic、GlassFish,以,以ear包下面的包下面的文件的文件的web访问路径进行访问访问路径进行访问 JBoss以以war包下面的包下面的web访问路径访问访问路径访问 实际项目中,最好把实际项目中,最好把web访问路径设置相同访问路径设置相同 对于有状态的对于有状态的Session Bean,使用依赖注入可,使用依赖注入可能会因为线程共享而出错,所以能会因为线程共享而出错,所以Web组件访问有组件访问有状态状态Session Bean都是通过查找都是通过查找EJB引用来获引用来获取的。取的。 Web组件通过组件通过EJB引用
10、来获取引用来获取EJB需要经过如下需要经过如下两个步骤:两个步骤: 为需要被调用的为需要被调用的EJB配置配置EJB引用引用 在在Web组件中通过查找组件中通过查找EJB引用来获取引用来获取EJB组件组件 实际操作演示实际操作演示 在工具类中访问在工具类中访问Session Bean只能通过只能通过JNDI查找,具体有两种方式:查找,具体有两种方式: 通过全局通过全局JNDI查找查找 通过通过EJB引用来查找引用来查找 实际操作演示实际操作演示 Java EE应用的架构应用的架构 在在Web层访问层访问Session Bean 在在Web层使用层使用JPA 基于基于JBoss的整合开发的整合开
11、发 基于基于Weblogic的整合开发的整合开发 课程小结课程小结 如果项目的规模不是很大,可以不用如果项目的规模不是很大,可以不用Session Bean封装封装JPA,而是在,而是在Web层直接调用层直接调用JPA进行进行持久化操作。持久化操作。 需要让需要让Web层加载实体类文件和层加载实体类文件和文件。文件。 在在Web应用中获取应用中获取EntityManager有有3种方式:种方式: 使用容器管理的使用容器管理的EntityManager 在容器外使用应用程序管理的在容器外使用应用程序管理的EntityManager 在容器外使用在容器外使用EntityManager 如果应用服务
12、器本身提供了如果应用服务器本身提供了EntityManager实现,那么使用容器管理的实现,那么使用容器管理的EntityManager是最佳选择。是最佳选择。 不能把不能把EntityManager注入具有多线程支持注入具有多线程支持的的Web组件,否则会造成错误。组件,否则会造成错误。 为了避免线程安全问题,提供更好的可移为了避免线程安全问题,提供更好的可移植性,实际应用中都推荐使用植性,实际应用中都推荐使用JNDI查找来查找来获取获取EntityManager对象。对象。 为了在为了在Web组件中通过组件中通过JNDI查找来获取查找来获取EntityManager,先需要为,先需要为En
13、tityManager在在ENC中配置一个注册项,有如下两种配置中配置一个注册项,有如下两种配置方式:方式: 通过在类级别上使用通过在类级别上使用PersistenceContext 在在文件中使用文件中使用元元素素 实际操作演示实际操作演示 容器负责实现容器负责实现EntityManagerFactory对象,而对象,而应用程序通过应用程序通过EntityManagerFactory的的createEntityManager()方法来创建方法来创建EntityManager。 EntityManagerFactory是线程安全的,可以注是线程安全的,可以注入到入到Web组件中。组件中。 使用
14、使用PersistenceUnit Annotation 创建创建EntityManager必须是在事务开始之后。必须是在事务开始之后。 实际操作演示实际操作演示 在容器外使用应用程序管理的在容器外使用应用程序管理的EntityManager的的步骤如下:步骤如下: 将定义持久化单元的将定义持久化单元的文件放在文件放在META-INF路径下,并路径下,并将将META-INF路径放在类加载路径下路径放在类加载路径下 使用使用Persistence工具类创建工具类创建EntityManagerFactory 通过通过EntityManagerFactory来创建来创建EntityManager 实
15、际操作演示实际操作演示 顾名思义它是顾名思义它是local variable(线程局部变(线程局部变量)。它的功用非常简单,就是为每一个量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完从线程的角度看,就好像每一个线程都完全拥有该变量。全拥有该变量。 详细内容请查看备注详细内容请查看备注 Java EE应用的架构应用的架构 在在Web层访问层访问Session
16、 Bean 在在Web层使用层使用JPA 基于基于JBoss的整合开发的整合开发 基于基于Weblogic的整合开发的整合开发 课程小结课程小结 主要步骤主要步骤 开发实体开发实体JPA 开发开发EAO对象对象 开发业务逻辑组件开发业务逻辑组件 定义定义JSF的托管的托管Bean来处理请求来处理请求 打包、部署、运行打包、部署、运行 注意事项:注意事项: 如果部署不成功,需要删除如果部署不成功,需要删除JBoss的的Deploy下面的下面的。 如果使用如果使用NetBeans工具建立工具建立JavaEE项目,可以不用项目,可以不用再建立再建立文件文件,直接通过直接通过war包下面的包下面的we
17、b路径访问即可路径访问即可。 实际操作演示实际操作演示 Java EE应用的架构应用的架构 在在Web层访问层访问Session Bean 在在Web层使用层使用JPA 基于基于JBoss的整合开发的整合开发 基于基于Weblogic的整合开发的整合开发 课程小结课程小结 主要步骤主要步骤 开发实体开发实体JPA 开发开发EAO对象对象 开发业务逻辑组件开发业务逻辑组件 定义定义Action来处理用户请求来处理用户请求 打包、部署、运行打包、部署、运行 实际操作演示实际操作演示 Java EE应用的架构应用的架构 在在Web层访问层访问Session Bean 在在Web层使用层使用JPA 基
18、于基于JBoss的整合开发的整合开发 基于基于Weblogic的整合开发的整合开发 课程小结课程小结 JSF的运行原理的运行原理 托管托管Bean JSF标签标签 JSF导航文件导航文件 EJB3中的中的Bean分类分类 Session Bean 无状态无状态Session Bean 允许本地调用允许本地调用-local 允许远程调用允许远程调用-remote 有状态有状态Session Bean 允许本地调用允许本地调用-local 允许远程调用允许远程调用-remote MDB 是一种特殊的无状态是一种特殊的无状态Session Bean 不允许客户端直接调用不允许客户端直接调用 可以调用其他可以调用其他Session Bean EJ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家禽孵化厂管理制度
- 弱电井施工管理制度
- 律师所案件管理制度
- 德克士库存管理制度
- 快递pda管理制度
- 快餐分餐间管理制度
- 总决算编制管理制度
- 总经办规章管理制度
- 慈善会印章管理制度
- 成品库盘点管理制度
- 2025至2030年中国高镍三元材料产业发展动态及投资方向分析报告
- 2025年毕节市大方富民村镇银行招聘题库带答案分析
- (2025)国家公务员考试时事政治必考试题库与答案
- 2025影视拍摄场地布置合同协议书
- 2017司考题目及答案
- 杂志分拣打包服务合同4篇
- 2025年D-对羟基苯甘氨酸项目市场调查研究报告
- 国泰君安补签风险协议书
- 防排烟系统设计毕业答辩
- 2025年人工智能应用技术职业资格考试试卷及答案
- 预防强对流天气安全教育
评论
0/150
提交评论