框架 day37 Spring3,AOP,代理模式(动态/CGLIB/工厂bean),传统AOP,AspectJ框架(基于xml/注解),切入点表达式,jdbcTemplate
Posted 飛白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了框架 day37 Spring3,AOP,代理模式(动态/CGLIB/工厂bean),传统AOP,AspectJ框架(基于xml/注解),切入点表达式,jdbcTemplate相关的知识,希望对你有一定的参考价值。
1 AOP
1.1 什么是AOP
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
* AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码
* 经典应用:性能监视、事务管理、安全检查、缓存等
* Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码
* AspectJ是一个基于Java语言的AOP框架,Spring2.0开始,Spring AOP引入对Aspect的支持,AspectJ扩展了Java语言,提供了一个专门的编译器,在编译时提供横向代码的织入
1.2 aop实现原理
* aop 底层采用是代理机制。
* 接口 + 实现类:有接口,采用JDK动态代理。
* 实现类:只有实现类,没有接口,采用CGLIB 字节码增强
1.3 aop相关术语(掌握)
* Target : 目标类,需要被增强的类。
* JoinPoint:连接点,目标类上需要被增强的方法。(这些方法可以被增强,也可能不增强)
* PointCut:切入点,被增强的连接点。(已经增强了)
切入点可以理解为是连接点一个子集。
* Advice :增强/通知,增强的方法。
* weaving:织入,将切入点和通知结合,生成代理类过程。
* Proxy:代理类
* Aspect:切面,切入点和通知结合(切入点和 通知点 多点形成面)
特殊情况:一个切入点和 一个通知
* Introduction(引介):特殊的通知,可以对类增强,添加方法或字段。(知道)
2 代理模式-手动方式:(了解)
以上是关于框架 day37 Spring3,AOP,代理模式(动态/CGLIB/工厂bean),传统AOP,AspectJ框架(基于xml/注解),切入点表达式,jdbcTemplate的主要内容,如果未能解决你的问题,请参考以下文章
框架 day36 Spring3 入门,DI依赖注入,装配bean基于xml/注解, 整合Junit4,配置约束自动提示