![[计算机软件及应用]Spring自动代理-SHHPPT课件_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-4/27/55762a92-d4db-492a-8208-23d1308344cb/55762a92-d4db-492a-8208-23d1308344cb1.gif)
![[计算机软件及应用]Spring自动代理-SHHPPT课件_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-4/27/55762a92-d4db-492a-8208-23d1308344cb/55762a92-d4db-492a-8208-23d1308344cb2.gif)
![[计算机软件及应用]Spring自动代理-SHHPPT课件_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-4/27/55762a92-d4db-492a-8208-23d1308344cb/55762a92-d4db-492a-8208-23d1308344cb3.gif)
![[计算机软件及应用]Spring自动代理-SHHPPT课件_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-4/27/55762a92-d4db-492a-8208-23d1308344cb/55762a92-d4db-492a-8208-23d1308344cb4.gif)
![[计算机软件及应用]Spring自动代理-SHHPPT课件_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-4/27/55762a92-d4db-492a-8208-23d1308344cb/55762a92-d4db-492a-8208-23d1308344cb5.gif)
已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章,SpringautoProxing(自动代理),上节回顾,本章目标,使用spring的动态代理Spring和struts2整合,什么是spring的自动代理,因为如果应用程序规模大时,如果要提供的Advice的目标对象很多,则一个一个为它们建立代理对象会是件麻烦事。为此,Spring为一些情况提供自动代理。自动代理可以让你不用为每一个目标对象手动定义代理对象使用自动代理,你可以透过Bean名称或者是Pointcut的比对,自动为符合比对条件的目标对象建立代理对象。,问题的起源,一个应用,在applicationContext.xml文件中,com.dn.lesson4.Somedia,问题,如果我们有两个类实现同一个接口,这时需要两个Proxy对象,applicationContext.xml文件配置,com.dn.lesson.IServicelogAdvicecom.dn.lesson.IServicelogAdvice,测试文件test.java,ApplicationContextcontext=newClassPathXmlApplicationContext(applicationContext.xml);IServiceis=(IService)context.getBean(ProxyFactoryBean);is.execute();IServiceis1=(IService)context.getBean(ProxyFactoryBean1);is1.execute();,问题,上面所使用的代理方式是ProxyFactoryBean模式优点是采用代理的方式为每个需要的Bean在需要的时候注入切面程序缺点每个代理Bean只能为一个Bean程序服务如果Bean很多的话,这里就需要多个代理类,解决办法,使用Spring中的动态代理使用org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator类自动代理可以让你不用为每一个目标对象手动定义代理对象使用自动代理,你可以透过Bean名称或者是Pointcut的比对,自动为符合比对条件的目标对象建立代理对象。,在配置文件中注入该Bean,*ActionlogAdvice不需要id属性,因为在调用时,不需要指定代理类,而是由系统直接匹配有两个属性beanNames:指的是需要匹配的bean,可采用通配符可以使用指定需要匹配的BeaninterceptorNames已注入的Advice实现类或Advisor使用时:直接以Beanid获取Bean调用即可,比较方便。IServiceis=(IService)context.getBean(loginAction);is.execute();,自动代理的优点,可以为多个bean应用同一个切面可以为多个bean应用多个切面在获取时,可以不获取代理类,可直接使用Bean在获取时,系统自动检测该bean是否符合自动代理类的规划,如果符合,自动应用。,动态代理之DefaultAdvisorAutoProxyCreator方式,org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator需要与PointcutAdvisor一起使用可以是NameMatchMethodPointcutAdvisor也可以是RegexpMethodPointcutAdvisor步骤注入DefaultAdvisorAutoProxyCreator注入相应的PointcutAdvisor测试文件中不需要调用代理类,在调用相应bean时,系统自动匹配。,配置文件配置,pointcutAdvisror的配置同以前,但可以不指定idexecuteDefaultAdvisorAutoProxyCreator的注入,概念辨析,技术、组件、框架和系统,Java流行框架,大名鼎鼎的SSH,struts,Struts只是一个MVC框架(Framework),用于快速开发JavaWeb应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action也为V(View)提供了一系列定制标签(CustomTag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。,Spring,Spring是一个开源轻型容器框架(light-weightcontainer),其核心是Bean工厂(BeanFactory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-OrientedProgramming,面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;,Hibernate,它是连接Java应用程序和关系数据库的中间件。它对JDBCAPI进行了封装,负责Java对象的持久化。在分层的软件架构中它位于持久化层,封装了所有数据访问细节,使业务罗基层可以专注于实现业务逻辑。它是一种ORM(Object-RelationMapping对象-关系映射)工具,能够建立面向对象的域模型和关系模型的映射。,回顾:三层结构,三层结构指的是?和.NET中三层结构的对比,三层结构在Java中的应用,分层原则各层职责明确上一层调下一层,Spring的Ioc控制的核心,Struts项目发送请求http:/localhost:8081/ssh/login.action增加业务层的struts项目IServiceIServiceImpl在action中增加对IServiceImpl的使用出现问题:ISerivceImpl与Action耦合度太强,不易于系统维护解决办法:由Spring来进行管理,整合点:,让Spring管理Struts的Action对象,步骤,将实例化语句去除,加上get/set方法在spring的配置文件中注入action(可以使用属性注入)在spring的配置文件中注入impl业务实现类但此时会出现问题?空指针异常?,原因是:,因为我们在spring中由Ioc实例化action,但请求却是发给struts,struts如何去spring中去取action的实例化?Struts的处理请求的方式:请求-Struts/RequestProcessor-控制器-.,解决办法,1、加入strut2-spring-plugin*.jar文件此文件为strut2整合spring的外在jar文件,解决的办法:,2.在web.xml文件中增加下列代码contextConfigLocation/WEB-INF/classes/applicationContext.xmlorg.springframework.web.context.ContextLoaderListener功能:即告诉strut2,实例化action的工作不由struts2框架来做了,而是由spring的配置文件中注入了。,解决的办法:,3。Struts.xml文件/success.jsp/login2.jsp/login2.jsp,解决的办法:,applicationContext.xml文件,注意:bean中的id应该与struts.xml文件中action的class属生匹配,建议,applicationContext.xml文件,再次发送请求,http:/localhost:8081/ssh/lo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津市面向新疆维吾尔自治区和田籍未就业少数民族高校毕业生公开招聘事业单位工作人员考试模拟试题及答案解析
- 2025云南省昭通市彝良县医共体总医院龙海分院招聘编外合同制人员和乡村医生(5人)笔试参考题库附答案解析
- 2025福建厦门市集美区后溪中学非在编教师招聘3人考试备考题库及答案解析
- 2025首都医科大学附属北京积水潭医院招8人(第四批)考试模拟试题及答案解析
- 2025重庆交通资源开发有限公司市场化选聘商业项目总监1人考试备考题库及答案解析
- 2025铜川新区管委会招聘(10人)考试备考题库及答案解析
- 2025-2026广东潮州饶平县教育系统招募银龄讲学教师12人笔试模拟试题及答案解析
- 2025云南昆明中机中联工程有限公司招聘2人考试参考题库附答案解析
- 2025云南昆明市盘龙区财大附中聘任制教师招聘考试模拟试题及答案解析
- 导游专业毕业论文目录
- 炉窑公司现场管理制度
- 无人车项目计划书范文大全
- 高等教育十五五发展规划
- 股权转让及公司业绩承诺补充协议模板
- 仓管员安全培训课件
- T/QX 005-2021加油站油罐机械清洗作业规范
- T/CECS 10226-2022抗裂硅质防水剂
- 人教鄂教版科学 四年级上册 第一单元 多样的动物 单元教学解读
- 2025年江西赣州市融资担保集团有限公司招聘笔试参考题库附带答案详解
- 限制类医疗技术管理
- 2024-2025年第二学期学校国际交流合作计划
评论
0/150
提交评论