Spring Aop实例(XML形式)
来源:互联网 发布:剑三明教成女捏脸数据 编辑:程序博客网 时间:2024/05/20 08:01
AOP(Aspect-OrientedProgramming)面向方面编程,与OOP完全不同,使用AOP编程系统被分为方面或关注点,而不是OOP中的对象。
AOP的引入
在OOP面向对象的使用中,无可避免的会出现代码重复,而且使用面向对象的编程方式,这种重复无法避免,比如用户权限判断中,根据相应的权限执行相应的方法;在servlet中设置编码格式时,同样相同的代码出现很多次,而且还根业务无关,很容易忘记写,结果运行的时候就出现乱码拉。这种重复代码不仅使编码麻烦,而且还不容易维护。而AOP则将这些代码整理起来,将解决某个切面问题的代码单独的放在某个模块中,然后再织入到程序中。
AOP中的术语
Aspect:横切面的功能, 抽象出类,或接口, AOP编程重要的就是识别出横切面功能。
(方面,类似于字符编码功能)
Advice: 横切面功能的具体实现,需要根据实际的情况分析,如果在目标对象操作之前是 before在操作之后,就是 after advice。
(增强,类似于字符编码过滤器)
Pointcut:切入点,描述横切面功能应用的限制,不是所有的流程都需要,那些可以使用的地方就是切入点
(类似于过滤器的匹配规则 /*)
Joinpoint: 连接点,或指组件加入流程的时机,比如设置属性,调用方法,等,Spring只支持方法调用的连接点,而其他的一些框架支持属性的连接点如:AspectJ,
(类似于过滤器的过滤规则 REQUEST,FORWARD)
Weave: 缝合,将组件应用到业务流程中的这个过程,叫缝合或织入。
(类似于将过滤器配置到web.xml文件的过程)
Proxy,代理,在实现上,Spring的AOP其实就是使用JDK的动态代理(使用接口的方式完成代理操作),也可以使用CGLIB(使用继承的方式完成代理操作)。
Target,目标,业务操作的实际对象
实例(通过XML形式)
1. AudioAop:切面类
@Service("audioAop")public class AudioAop {public void before() {System.out.println("before......The audience is taking their seats.");}public void after() {System.out.println("after......The audience is turning off their cellphones");}}
2. Performer:目标对象
@Servicepublic class Performer {private static Logger logger = Logger.getLogger(UserController.class);public void perform() throws Exception {logger.info("perform...........................");}}3. ApplicationContext:Spring配置文件
<aop:aspect ref="audioAop"> <aop:pointcut id="performance" expression="execution(* com.cn.test.aop.pointcut.Performer.perform(..))"/> <aop:before pointcut-ref="performance" method="before"/> <aop:after pointcut-ref="performance" method="after"/> </aop:aspect>
- Spring Aop实例(XML形式)
- spring aop xml实例
- spring中aop的xml形式
- spring使用xml形式aop实现
- Spring Aop实例之xml配置
- spring04 Spring Aop实例之xml配置
- Spring Aop实例之xml配置
- Spring Aop实例之xml配置
- Spring AOP+AspectJ在XML配置实例
- Spring Aop实例之xml配置
- Spring Aop实例之xml配置
- Spring Aop实例之xml配置
- Spring Aop实例之xml配置
- Spring配置与实例化(DI)xml形式
- spring注解形式aop实现
- Spring aop最简形式
- Spring AOP 入门实例
- Spring AOP 入门实例
- HDU 5750 快速筛素数法打表
- Java基础:逻辑与或和按位与或的区别
- 第一次机房收费系统--安装连接之初体验
- #pragma预编译的使用
- 好模板收藏地址
- Spring Aop实例(XML形式)
- PHP中session的工作原理
- <30天自制操作系统>第六天
- Android博客周刊第28期
- 使用Myeclipse + SVN + TaoCode 免费实现项目版本控制的详细教程
- iOS-深复制(mutableCopy)与浅复制(copy)
- hdu5725 Game 2016年多校C
- 三分法
- 使用js实现表格增加与删除