Spring AOP 整理(1)

   这篇文章受到了以下作者的帮助,非常感谢!

    http://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html ---》 在不修改原有代码情况下,在目标方法执行期间,插入需要的代码(增加的业务代码)的方法:静态代理模式、JDK1.5后动态代理、Cglib 子类继承覆盖增强三种,分析了三种方法优劣,代码层次上理解AOP有很大的帮助。 Tip:如果bean实现了接口,Sping调用动态代理;否则用Cglib的方式实现(Spring出于自身需要对Cglib进行了改造封装)。

总结:连接点就像是数据库中的数据,切入点表达式就是SELECT语句,为我们选出需要的切入点。执行切面类中指定的通知方法。

http://www.cnblogs.com/zhugenqiang/archive/2008/07/27/1252761.html: 实践具体需求中对AOP的理解。推荐!

  总结:AOP擅长对日志、安全、持久化、事务等项目中分散,执行逻辑又相似的模块的处理。

  附上 基于XML配置的 AOP代码 ,基于注解的我不好管理。

 1 <!--1、基于xml配置的aop功能开启前提:将切面类和目标对象交由ioc容器管理 -->
 2
 3     <bean id="targetClass" class="com.fan.job.se.TargetClass"></bean>
 4
 5     <bean id="myaspect2" class="com.fan.job.se.MyAspect2"></bean>
 6     <bean id="myaspect1" class="com.fan.job.se.MyAspect1"></bean>
 7
 8     <!--2、配置aop的信息,需要使用aop标签,aop名称空间  -->
 9     <aop:config>
10         <!-- 切入点表达式
11         execution([权限修饰符] [返回值类型] [简单类名/全类名] [方法名]       ([参数列表]))
12                      可省略        * 表全部   =======两者可混合写           ..表示全部
13          公共的切入表达式配置  -->
14         <aop:pointcut expression="execution(* *(..))" id="so"/>
15
16         <!-- 切面类 参数信息:
17         ref:切面类
18         order :切面优先级 越小越优先
19         id : 其id
20          -->
21         <aop:aspect ref="myaspect2" order="100">
22             <!-- 还要一些其他参数  自己去学去 -->
23             <aop:after method="wtf" pointcut-ref="so" />
24         </aop:aspect>
25
26         <aop:aspect ref="myaspect1" order="200" >
27
28         <!-- 切入点表达式(单独 写入) -->
29             <aop:before method="say" pointcut="execution(* *(..))" />
30         </aop:aspect>
31
32     </aop:config>
时间: 2025-01-01 23:04:06

Spring AOP 整理(1)的相关文章

spring aop 整理

aop常见概念 1.切面 事务.日志.安全性框架.权限等都是切面(就是类,事务有事务类,日志有日志类,权限有权限类) 2.通知 切面中的方法就是通知(类中针对目标方法所要插入的方法,即事务类中执行事务的方法,日志类中执行日志操作的方法) 3.目标类 (你想要侵入修改的方法所在的类,诸如我们想在查询存款时加入一些其他操作,存款管理类就是目标类) 4.切入点 只有符合切入点,才能让通知和目标方法结合在一起 (就是你想要加强的方法,就是查看工资的方法showSalary()) 5.织入: 形成代理对象

Spring AOP整理

示例展示 AOP(Aspect Oriented Programming),是面向切面编程的技术.AOP基于IoC基础,是对OOP的有益补充.AOP之所以能得到广泛认可,主要是因为它将应用系统拆分分了2个部分:核心业务逻辑及横向的通用逻辑,也就是所谓的切面.例如,所有大中型应用都要涉及到的持久化管理.事务管理.权限管理.日志管理和调试管理等.使用AOP技术,可以让开发人员只专注核心业务,而通用逻辑则使用AOP技术进行横向切入,由专人去处理这些通用逻辑,会使得任务简单明了,提高开发和调试的效率.

Spring AOP使用整理:各种通知类型的介绍

2.PersonImpl类的源码 public class PersonImpl implements Person { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void info() { System.out.println("\t我叫&qu

Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

原创整理不易,转载请注明出处:Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 代码下载地址:http://www.zuidaima.com/share/1772661373422592.htm 本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifi

深入理解Spring AOP之二代理对象生成

深入理解Spring AOP之二代理对象生成 spring代理对象 上一篇博客中讲到了Spring的一些基本概念和初步讲了实现方法,当中提到了动态代理技术,包含JDK动态代理技术和Cglib动态代理 动态代理这部分我有过一篇博客介绍:动态代理,想深入了解的朋友能够看一看,再回想一下,Spring中怎样区分採用JDK动态代理和CGlib动态代理: 假设目标对象的实现类实现了接口.Spring AOP 将会採用 JDK 动态代理来生成 AOP 代理类: 假设目标对象的实现类没有实现接口,Spring

利用反射手写代码实现spring AOP

前言:上一篇博客自己动手编写spring IOC源码受到了大家的热情关注,在这里博客十分感谢.特别是给博主留言建议的@玛丽的竹子等等.本篇博客我们继续,还是在原有的基础上进行改造.下面请先欣赏一下博主画的一张aop简图(没有艺术天分,画的不好莫见怪) 解析:往往在我们的系统的多个核心流程中会有一部分与之关系不大的相同的横切流程,例如权限认证,事务管理.因此我们一般会抽象出这些相同的比较次要的交给spring aop的Handler来统一处理这些横切流程也就是上图中绿色部分.接下来我们看一下本例结

spring AOP + 自定义注解实现权限控制小例子

今天看了一下黑马程序员的视频,上面讲到一个使用spring AOP + 自定义注解的方式来实现权限控制的一个小例子,个人觉得还是可以借鉴,整理出来与大家分享. 需求:service层有一些方法,这些方法需要不同的权限才能访问. 实现方案:自定义一个PrivilegeInfo的注解,使用这个注解为service层中的方法进行权限配置,在aop中根据PrivilegeInfo注解的值,判断用户是否拥有访问目标方法的权限,有则访问目标方法,没有则给出提示. 关键技术:自定义注解及注解解析,spring

Spring AOP四种实现方式Demo详解与相关知识探究

一.前言 在网络上看到一篇博客Spring实现AOP的4种方式,博主写的很通俗易懂,但排版实在抓狂,对于我这么一个对排版.代码格式有强迫症的人来说,实在是不能忍受~~~~(>_<)~~~~. 我亲手实现了一遍,重新整理,加上了一些不易关注到的细节.漏掉的知识,以及自己对AOP的一些理解,写成这篇博客. 二.AOP相关概念 (1)AOP是什么?AOP与拦截器的区别? 太抽象的不说,如果你知道Struts2的拦截器,拦截器就是应用的AOP的思想,它用于拦截Action以进行一些预处理或结果处理.而

[Spring框架]Spring AOP基础入门总结一.

前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务