




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经典JavaEE课程,段鹏松,第12章整合开发,对本课程所学内容的回顾掌握在JBoss下的整合开发掌握在Weblogic下的整合开发课程小结,课程目标,概述,本章节旨在把本课程所有的知识综合起来。通过本章节的学习,要从整体上对经典JavaEE的构架有一个清晰的认识。整合概述:Web层调用SessionBean,SessionBean中再调用JPA。在这个过程中需要用到大量的依赖注入。,目录,JavaEE应用的架构在Web层访问SessionBean在Web层使用JPA基于JBoss的整合开发基于Weblogic的整合开发课程小结,SSH和EJB3的应用结构对比,SSH和EJB3的应用结构对比,基于Spring的应用结构和基于EJB3的应用结构整体上差别不大,只是在各组件的实现技术上存在差异而已。由于EJB3是在Spring之后出现的,所以能充分吸收Spring的优势,功能更为强大。,DAO和EAO,DAO:由一个接口和该接口的实现类组成,封装了数据库的CRUD等原子操作,业务逻辑组件通过调用DAO组件来实现对数据库的操作。是轻量级JavaEE应用的常用做法。EAO:EJB3中对DAO的替代组件,通常是一个本地无状态SessionBean。DAO和EAO的区别:DAO组件操作的是Hibernate持久化对象EAO组件操作的是处于JPA管理之下的实体,使用SessionFacade,Facade设计模式的概念Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用(出自百度文库)。即当子系统复杂或者繁锁时,我们让子系统提供一个窗口,程序中称为接口,其它程序或者对象就通过这个窗口(接口)与此子系统联系。接口可以是类或方法等。这样就简化了子系统的使用。不管是DAO还是EAO,通常不会与前端应用程序直接交互,而是在多个DAO或EAO组件之上再封装一层业务逻辑组件,该业务逻辑组件将直接和前端应用程序交互。,使用SessionFacade,目录,JavaEE应用的架构在Web层访问SessionBean在Web层使用JPA基于JBoss的整合开发基于Weblogic的整合开发课程小结,如何使用依赖注入,对于已经处于容器管理之下的组件,若需要使用应用服务器中的SessionBean,可以让应用程序采用依赖注入的方式将该SessionBean注入到该组件中。对于不受应用服务器管理的应用组件,不能接受应用服务器的依赖注入,只能采用查找JNDI名的方法来访问。,哪些组件可以接受依赖注入,JavaEE应用程序的结构,.ear0个或多个EJB-JAR包0个或多个Web应用META-INFapplication.xmlNetBeans和MyEclipse都支持创建完整的JavaEE程序。实际操作演示,使用依赖注入访问无状态的SessionBean,Web层使用以来注入访问SessionBean是最简单、最容器的方式。一般来说,接受容器管理的Web组件,都可以通过依赖注入来注入SessionBean,程序中是要使用EJB修饰需要接受依赖注入的Field即可。实际操作演示,一些注意事项,对于JavaEE项目,不同的服务器访问方式有所不同:Weblogic、GlassFish,以ear包下面的applicaiton.xml文件的web访问路径进行访问JBoss以war包下面的web访问路径访问实际项目中,最好把web访问路径设置相同,演示结果,通过EJB引用访问有状态的SessionBean,对于有状态的SessionBean,使用依赖注入可能会因为线程共享而出错,所以Web组件访问有状态SessionBean都是通过查找EJB引用来获取的。Web组件通过EJB引用来获取EJB需要经过如下两个步骤:为需要被调用的EJB配置EJB引用在Web组件中通过查找EJB引用来获取EJB组件实际操作演示,在工具类中调用SessionBean,在工具类中访问SessionBean只能通过JNDI查找,具体有两种方式:通过全局JNDI查找通过EJB引用来查找实际操作演示,目录,JavaEE应用的架构在Web层访问SessionBean在Web层使用JPA基于JBoss的整合开发基于Weblogic的整合开发课程小结,概述,如果项目的规模不是很大,可以不用SessionBean封装JPA,而是在Web层直接调用JPA进行持久化操作。需要让Web层加载实体类文件和persistence.xml文件。在Web应用中获取EntityManager有3种方式:使用容器管理的EntityManager在容器外使用应用程序管理的EntityManager在容器外使用EntityManager,使用容器管理的EntityManager,如果应用服务器本身提供了EntityManager实现,那么使用容器管理的EntityManager是最佳选择。不能把EntityManager注入具有多线程支持的Web组件,否则会造成错误。为了避免线程安全问题,提供更好的可移植性,实际应用中都推荐使用JNDI查找来获取EntityManager对象。,使用容器管理的EntityManager,为了在Web组件中通过JNDI查找来获取EntityManager,先需要为EntityManager在ENC中配置一个注册项,有如下两种配置方式:通过在类级别上使用PersistenceContext在Web.xml文件中使用元素实际操作演示,在容器内使用应用程序管理的EntityManager,容器负责实现EntityManagerFactory对象,而应用程序通过EntityManagerFactory的createEntityManager()方法来创建EntityManager。EntityManagerFactory是线程安全的,可以注入到Web组件中。使用PersistenceUnitAnnotation创建EntityManager必须是在事务开始之后。实际操作演示,通过ThreadLocal在容器外使用安全的EntityManager,在容器外使用应用程序管理的EntityManager的步骤如下:将定义持久化单元的persistence.xml文件放在META-INF路径下,并将META-INF路径放在类加载路径下使用Persistence工具类创建EntityManagerFactory通过EntityManagerFactory来创建EntityManager实际操作演示,ThreadLocal简介,顾名思义它是localvariable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。详细内容请查看备注,目录,JavaEE应用的架构在Web层访问SessionBean在Web层使用JPA基于JBoss的整合开发基于Weblogic的整合开发课程小结,基于JBoss的JSF+EJB3+JPA整合步骤,主要步骤开发实体JPA开发EAO对象开发业务逻辑组件定义JSF的托管Bean来处理请求打包、部署、运行注意事项:如果部署不成功,需要删除JBoss的Deploy下面的ROOT.war。如果使用NetBeans工具建立JavaEE项目,可以不用再建立Application.xml文件,直接通过war包下面的web路径访问即可。实际操作演示,运行结果示意图,目录,JavaEE应用的架构在Web层访问SessionBean在Web层使用JPA基于JBoss的整合开发基于Weblogic的整合开发课程小结,基于Weblogic的Struts2+EJB3+JPA整合,主要步骤开发实体JPA开发EAO对象开发业务逻辑组件定义Action来处理用户请求打包、部署、运行实际操作演示,目录,JavaEE应用的架构在Web层访问SessionBean在Web层使用JPA基于JBoss的整合开发基于Weblogic的整合开发课程小结,运行结果,JSF小结,JSF的运行原理托管BeanJSF标签JSF导航文件,EJB学习小结,EJB3中的Bean分类SessionBean无状态SessionBean允许本地调用-local允许远程调用-remote有状态SessionBean允许本地调用-local允许远程调用-remoteMDB是一种特殊的无状态SessionBean不允许客户端直接调用可以调用其他SessionBean,EJB学习小结,EJB的主要部署服务器weblogicJboss其他EJB的打包手工打包:Jar命令的用法工具打包:ant工具的用法EJB的调用方式依赖注入引用,JPA小结,JPA的概念实体的概念实体的生命周期实体的管理关系映射实体的继承关系映射JPQL的用法,本章小结,学习了JSF、EJB、JPA三大块的知识点还有JTA、JNDI等一些较为零碎的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版六年级下册唱歌 举杯祝福教学设计
- 六年级数学下册 第4单元 比例 3比例的应用第6课时 用比例解决问题(2)教学设计 新人教版
- 2024四川融信泰网络安全技术有限公司招聘6人笔试参考题库附带答案详解
- 人音版七年级音乐下册第四单元《红河谷》教学设计
- 管理人员转正申请审批表
- 七年级生物下册 4.11.2 尿的形成和排出教学设计 (新版)北师大版
- 七年级语文下册 第三单元 写作 口语交际 综合实践 开掘记忆 搜寻动人故事教学设计 北师大版
- 2024四川中国储备粮管理集团有限公司成都分公司公开招聘63人专科及以上笔试参考题库附带答案详解
- 九年级化学下册 第11单元 实验活动8 粗盐中难溶性杂质的去除教学设计 (新版)新人教版
- 七年级地理上册 第四章 第二节 气温和降水教学设计 (新版)湘教版
- 文创产品设计-课件
- 医疗技术临床应用规范化培训
- “小小科学家”广东省少年儿童科学教育体验活动+生物试题4
- 手术沙滩椅位
- 湖北省孝感市高新区2023-2024学年八年级下学期期中数学试题
- 广西壮族自治区百色市2023-2024学年七年级下学期4月期中考试英语试题
- 《面点基本功》课件-冠顶饺
- MOOC 绳结技术-大连海事大学 中国大学慕课答案
- 钻孔灌注桩施工工艺流程图
- 2024年江苏苏州风景园林投资发展集团有限公司招聘笔试参考题库含答案解析
- 幼儿保育专业人才培养方案
评论
0/150
提交评论