首页 > 代码库 > spring aop 整理
spring aop 整理
aop常见概念
1、切面
事务、日志、安全性框架、权限等都是切面(就是类,事务有事务类,日志有日志类,权限有权限类)
2、通知
切面中的方法就是通知(类中针对目标方法所要插入的方法,即事务类中执行事务的方法,日志类中执行日志操作的方法)
3、目标类 (你想要侵入修改的方法所在的类,诸如我们想在查询存款时加入一些其他操作,存款管理类就是目标类)
4、切入点
只有符合切入点,才能让通知和目标方法结合在一起 (就是你想要加强的方法,就是查看工资的方法showSalary())
5、织入:
形成代理对象的方法的过程
在配置之前要先将一下execution表达式
此表达式的作用是用于指定切入点:
xml配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id="salaryManager" class="cn.itcast.spring.aop.sh.aspects.SalaryManagerImpl"></bean> <bean id="logger" class="cn.itcast.spring.aop.sh.aspects.Logger"></bean> <bean id="security" class="cn.itcast.spring.aop.sh.aspects.Security"></bean> <bean id="privilege" class="cn.itcast.spring.aop.sh.aspects.Privilege"> <property name="access" value=http://www.mamicode.com/"afds">>注解配置
首先在配置文件中加入
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
springAOP的具体加载步骤:
1、当spring容器启动的时候,加载了spring的配置文件
2、为配置文件中所有的bean创建对象
3、spring容器会解析aop:config的配置
1、解析切入点表达式,用切入点表达式和纳入spring容器中的bean做匹配
如果匹配成功,则会为该bean创建代理对象,代理对象的方法=目标方法+通知
如果匹配不成功,不会创建代理对象
4、在客户端利用context.getBean获取对象时,如果该对象有代理对象则返回代理对象,如果无代理对象,则返回目标对象
说明:如果目标类没有实现接口,则spring容器会采用cglib的方式产生代理对象,如果实现了接口,会采用jdk的方式
spring aop 整理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。