spring AOP
2016-01-27 23:19
477 查看
什么事aop,aop就是对业务逻辑的实现是按功能模块来划分的,当你需要实现某一个功能的时候,只需要将不同的功能模块组合在一起。想想一下没有aop我们会怎么做呢?比如某一天领导突然说,给我把这1000个类前面都加一个输出“欢迎领导”的功能。你会怎么做,在每一个接口里面都加上这个功能,啊大概1000条一模一样的代码,那第二天领导又说,换成“欢迎首长”。又是1000条修改。累死了。
但是有了aop,你就可以这样做了。
首先讲解一下aop的常用术语,在讲之前我提醒一下大家,术语只是个术语而已,你从它的名字很难得到任何与它内容有关的信息。
我这里就用英语了,汉语翻译过来太坑爹。我的解释都是通俗解释。注意我讲的是spring的aop,spring的aop只做到了方法级别,这对我们大多数应用已经足够了。
但是向aspectJ,JBoos可以做到属性级别。
advice:你要实现的代码,就像上面的“欢迎领导”,“欢迎首长”。同时还包括实现代码的具体执行顺序。比如在这个方法执行前执行,或者执行后执行。
joinPoint:连接点,就是那1000个接口当中的任意一个.
pointCut:就是1000个接口,通常我们会用pointCut,因为joinPoint只能绑定一个接口,但是通常我们在实际当中都需要绑定多个。
aspect:就是把对应的pointCut,joinPoint,advice放在一起的一个东西(这是从配置和代码的角度来讲的)。
我现在用一个具体的实例来讲解。
声明一个Performe接口,里面有一个performe方法。
声明一个Juggler类实现了Performe接口。
声明一个Audience类,表示观众。
我们想要实现这样的逻辑。
在Performe的performe接口执行之前,我们需要观众执行关掉手机这个方法switchOffCell();
在Performe的performe接口执行之后,我们需要观众调用鼓掌欢呼的方法cheet();
但是有了aop,你就可以这样做了。
首先讲解一下aop的常用术语,在讲之前我提醒一下大家,术语只是个术语而已,你从它的名字很难得到任何与它内容有关的信息。
我这里就用英语了,汉语翻译过来太坑爹。我的解释都是通俗解释。注意我讲的是spring的aop,spring的aop只做到了方法级别,这对我们大多数应用已经足够了。
但是向aspectJ,JBoos可以做到属性级别。
advice:你要实现的代码,就像上面的“欢迎领导”,“欢迎首长”。同时还包括实现代码的具体执行顺序。比如在这个方法执行前执行,或者执行后执行。
joinPoint:连接点,就是那1000个接口当中的任意一个.
pointCut:就是1000个接口,通常我们会用pointCut,因为joinPoint只能绑定一个接口,但是通常我们在实际当中都需要绑定多个。
aspect:就是把对应的pointCut,joinPoint,advice放在一起的一个东西(这是从配置和代码的角度来讲的)。
我现在用一个具体的实例来讲解。
声明一个Performe接口,里面有一个performe方法。
声明一个Juggler类实现了Performe接口。
声明一个Audience类,表示观众。
我们想要实现这样的逻辑。
在Performe的performe接口执行之前,我们需要观众执行关掉手机这个方法switchOffCell();
在Performe的performe接口执行之后,我们需要观众调用鼓掌欢呼的方法cheet();
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- yui3的AOP(面向切面编程)和OOP(面向对象编程)
- JavaScript AOP编程实例
- 使用AOP改善javascript代码
- 初识SmartJS - AOP三剑客
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- java使用动态代理来实现AOP(日志记录)的实例代码
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- 详解Java的Spring框架中的事务管理方式