当前位置: 首页 > news >正文

道滘仿做网站做机票在线预订网站

道滘仿做网站,做机票在线预订网站,海口小学网站建设,莱州做网站一.Spring的AOP简介 1.1 什么是AOP AOP 为 Aspect Oriented Programming 的缩写#xff0c;意思为面向切面编程#xff0c;是通过预编译方式和运行期动态代 理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续#xff0c;是软件开发中的一个热点#xff0c;也是…一.Spring的AOP简介 1.1 什么是AOP AOP 为 Aspect Oriented Programming 的缩写意思为面向切面编程是通过预编译方式和运行期动态代 理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续是软件开发中的一个热点也是 Spring 框架中的一个重要内容。利用 AOP 可以对业务 逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度降低 提高程序的可重用性同时提高了开发的效率。 1.2 AOP的作用及其优势 作用在程序运行期间在不修改源码的情况下对方法进行 增强 优势减少重复代码提高开发效率并且便于维护 1.3 AOP的底层实现 实际上 AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间 Spring 通过动态代理技术 动态的生成代理对象代理对象方法执行时进行增强功能的介入在去调用目标对象的方法从而完成功能 的增强。 1.4 AOP的动态代理技术 常用的动态代理技术 JDK 代理基于接口的动态代理技术 cglib 代理基于父类的动态代理技术 1.5 JDK的动态代理 1.5.1 代理模式概述 为什么要有 代理 ? 生活中就有很多代理的例子例如我现在需要出国但是我不愿意自己去办签证、预定 机票和酒店觉得麻烦 那么就可以找旅行社去帮我办这时候旅行社就是代理而我自己就是被代理了。 代理模式的定义被代理者没有能力或者不愿意去完成某件事情那么就需要找个人代替自己去完成这件事, 这个人就是代理者, 所以代理模式包含了 3 个角色 : 被代理角色 代理角色 抽象角色 ( 协议 ) 1.5.2 静态代理 项目结构 package wwx.test02; public interface Sing {public void sing(); } ------------------------------------------- package wwx.test02;public class JinLian implements Sing {Overridepublic void sing() {System.out.println(jinlian在唱歌);} } ------------------------------------------- package wwx.test02;public class WangPo implements Sing{JinLian jinLian;public WangPo(JinLian jinLian) {this.jinLian jinLian;}Overridepublic void sing() {jinLian.sing();} } ------------------------------------------- package wwx.test02;public class XiMen {public static void main(String[] args) {JinLian jlnew JinLian();WangPo wpnew WangPo(jl);wp.sing(); //被代理者没有能力或者不愿意去完成某件事情 //那么就需要找个人代替自己去完成这件事,这个人就是代理者 //静态代理模式:代理类是实际存在的,根据代理类生成一个代理对象 //动态代理模式:代理类是不存在的,直接动态生成一个代理对象 //实现了静态代理} } ------------------------------------------   1.5.3 动态代理     概述 : 动态代理就是直接通过反射生成一个代理对象 , 代理对象所属的类是不需要存在的 动态代理的获取 jdk提供一个Proxy类可以直接给实现接口类的对象直接生成代理对象 参数 1:ClassLoader loader 被代理对象的类加载器 参数 2:Class?[] interfaces 被代理对象的要实现的接口 参数 3:InvocationHandler h ( 接口 ) 执行处理接口 返回值 : 代理对象 前 2 个参数是为了帮助在 jvm 内部生成被代理对象的代理对象 , 第 3 个参数 , 用来监听代理对象调用方 法 , 帮助我们调用方法 回调方法 : 当代理对象调用了方法 , 就会来执行该 invoke 方法 , 在该方法中就可以增强 被代理类的方法 参数 1: 生成的代理对象 这里就是 p 这个代理对象 ( 慎用 ) 参数 2: 当前代理对象执行的方法 这里 method 就是 happy() 方法对象 参数 3: 当前代理对象执行的方法 , 传入的实际参数 返回值 : 当前代理对象执行的方法的返回值 参数 1: 生成的代理对象 这里就是 p 这个代理对象 ( 慎用 )的原因  package wwx.test03;public class JianLian implements Sing{Overridepublic void sing() {System.out.println(金莲在唱歌);} }------------------------------------------------------------------------------------ ------------------------ package wwx.test03;public interface Sing {public void sing(); }------------------------------------------------------------------------------------ ------------------------package wwx.test03;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Date;public class DemoTest {// 参数1:ClassLoader loader 被代理对象的类加载器 // 参数2:Class?[] interfaces 被代理对象的要实现的接口 //1.6 AOP相关概念 // 在正式讲解 AOP 的操作之前我们必须理解 AOP 的相关术语常用的术语如下 // Target目标对象代理的目标对象 // Proxy 代理一个类被 AOP 织入增强后就产生一个结果代理类 // 参数3:InvocationHandler h (接口)执行处理接口 // 返回值: 代理对象 // 前2个参数是为了帮助在jvm内部生成被代理对象的代理对象,第3个参数,用来监听代理对象调用方 // 法,帮助我们调用方法public static void main(String[] args) {JianLian jianLiannew JianLian();Sing p (Sing) Proxy.newProxyInstance(JianLian.class.getClassLoader(),JianLian.class.getInterfaces(),new InvocationHandler() {Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {Date datenew Date();System.out.println(date);method.invoke(jianLian,args);return null;}});p.sing();} }1.6 AOP相关概念    在正式讲解 AOP 的操作之前我们必须理解 AOP 的相关术语常用的术语如下 Target 目标对象代理的目标对象 Proxy 代理一个类被 AOP 织入增强后就产生一个结果代理类 Joinpoint 连接点类里面哪些方法可以被增强这些方法称为连接点 spring 只支持方法类型的连接点 Pointcut 切入点实际被真正增强的方法称为切入点 Advice 通知 / 增强实际增强的逻辑部分称为通知增强通知有多种类型 前置通知指定增强的方法在切入点方法之前执行 后置通知指定增强的方法在切入点方法之后执行 异常通知指定增强的方法在出现异常时执行 最终通知无论增强方式执行是否有异常都会执行 环绕通知指定增强的方法在切入点方法之前和之后都执行 Aspect 切面是切入点和通知引介的结合 Weaving 织入是指把增强应用到目标对象来创建新的代理对象的过程。 spring 采用动态代理织入而AspectJ 采用编译期织入和类装载期织入 1.7 AOP 开发明确的事项 1.7.1 需要编写的内容 编写核心业务代码目标类的目标方法 编写切面类切面类中有通知 ( 增强功能方法 ) 在配置文件中配置织入关系即将哪些通知与哪些连接点进行结合 1.7.2 AOP 技术实现的内容 Spring 框架监控切入点方法的执行。一旦监控到切入点方法被运行使用代理机制动态创建目标对象的代 理对象根据通知类别在代理对象的对应位置将通知对应的功能织入完成完整的代码逻辑运行。 1.7.3 AOP 底层使用哪种代理方式 在 spring 中框架会根据目标类是否实现了接口来决定采用哪种动态代理的方式。 二.基于XML的AOP开发 2.1 快速入门 1. 导入 AOP 相关坐标 2. 创建目标接口和目标类内部有切点 3. 创建切面类内部有增强方法 4. 将目标类和切面类的对象创建权交给 spring 5. 在 applicationContext.xml 中配置织入关系 6. 测试代码
http://www.w-s-a.com/news/379765/

相关文章:

  • 南阳哪有做网站公司定制网站本地企业
  • 平板上做网站的软件邀约网站怎么做请柬
  • 企业网站成品源码邯郸做网站流程
  • 建设网站需要什么技术两个网站放在同一个服务器 备案
  • 焦作做网站推广天津网络关键词排名
  • siteserver cms网站访问量挂机宝可以做网站吗
  • 普宁网站建设公司网络商城设计
  • wordpress主题 外贸网站wordpress安装后输入帐号登不进去
  • 陕西省西安市建设局网站永登网站设计与建设
  • 广东网站设计招工.免费咨询贷款
  • 做试题网站在线做c 题的网站
  • 青岛发现51例阳性南京专业网站优化公司
  • 南昌建站如何上wordpress
  • 洛阳网站建设优惠公司建筑企业上市公司有哪些
  • 营销型网站建设营销型网站建设手机网站设计需要学什么
  • 在线视频网站 一级做爰片南通网站建设找哪家
  • 网站优化文章东莞专业网站建设价钱
  • 哈尔滨网页设计网站模板泰兴建设局网站
  • 响应式网站设计公司报纸做垂直门户网站
  • 陕西旭泽建设有限公司网站企业网站建设软件需求分析
  • 上海公司网站建设方案中企动力西安分公司
  • dedecms网站后台怎样才能上百度
  • 云互联的网站名字亚马逊雨林生物
  • 电商网站功能企查查企业信息查询网
  • 特色网站建设中国住房和城乡建设局官网
  • 长春市住房城乡建设厅网站做白酒网站
  • 自己的网站怎么做的成品免费ppt网站
  • 番禺区网站建设哪里有泰安公司
  • 网站制作详细过程网站开发最强工具
  • 孟村县做网站长春城投建设投资有限公司网站