spring aop部分
来源:互联网 发布:伤感好听的网络歌曲 编辑:程序博客网 时间:2024/06/07 10:27
AOP概念
1.aop:面向切面编程,扩展功能不修改源代码实现
2.采用的是横向抽取机制
AOP原理
底层使用的是动态代理实现
1. 有接口的情况(JDK动态代理)
使用动态代理方式,创建接口实现类代理对象
创建和DaoImpl类平级对象,不是真正对象,代理对象,实现和DaoImpl相同的功能
2.没有接口情况 (cglib动态代理)
创建User类的子类的代理对象
在子类中调用父类的方法完成
AOP中相关的术语
*连接点:类里面的哪些方法可以被增强,这些方法被称为 Joinpoint(连接点)
*切入点:在类里可以有很多方法被增强,而真正增强的方法称为Pointcut(切入点)
*通知/增强:增强的逻辑,称为增强。
前置通知:在方法之前执行
后置通知:在方法之后执行
异常通知:方法出现异常
最终通知:在后置之后执行
环绕通知:在之前和之后执行
*切面:把增强应用到具体的方法上面,过程称为Aspect(切面)。
把增强用到切入点的过程
Spring的aop操作
1.在spring里进行aop操作,使用aspectj实现
2.使用aspectj实现aop有两种方式
(1)基于aspectj的xml配置
(2)基于aspectj的注解方式
Aop操作准备
1.导入jar包
aopalliance
aspectjweaver
spring-aop-4.2.4RELEASE.jar
spring-aspects-4.2.4RELEASE.jar
2.创建spring核心的配置文件
xml中配置aop约束
使用表达式配置切入点
1.切入点:实际增强的方法
2.常用的表达式
(1)execution(* (增强方法的全路径))
(2)execution(* (增强类的全路径).*)
(3)execution(* *.*(..))
aspectj的aop操作
(xml)
<bean id="book" class=""></bean>
<bean id="mybook" class=""></bean>
<aop:config>
配置切入点
<aop:pointcut expression="execution(* Book.*(...))" id="pointcut1"/>
配置切面
<aop:aspect ref="mybook">
配置增强类型
<aop:before method="before1" pointcut-ref="pointcut1"/>
<aop:after-returning method="after1" pointcut-ref="pointcut1"/>
<aop:around method="around1" pointcut-ref="pointcut1"/>
</aop:aspect>
</aop:config>
注:环绕通知
public void around1(ProceedingJoinPoint ProceedingJoinPoint) throws Throwable{
System.out.println("方法之前....")
proceedingJoinPoint.proceed();
System.out.println("方法之后....")
1.aop:面向切面编程,扩展功能不修改源代码实现
2.采用的是横向抽取机制
AOP原理
底层使用的是动态代理实现
1. 有接口的情况(JDK动态代理)
使用动态代理方式,创建接口实现类代理对象
创建和DaoImpl类平级对象,不是真正对象,代理对象,实现和DaoImpl相同的功能
2.没有接口情况 (cglib动态代理)
创建User类的子类的代理对象
在子类中调用父类的方法完成
AOP中相关的术语
*连接点:类里面的哪些方法可以被增强,这些方法被称为 Joinpoint(连接点)
*切入点:在类里可以有很多方法被增强,而真正增强的方法称为Pointcut(切入点)
*通知/增强:增强的逻辑,称为增强。
前置通知:在方法之前执行
后置通知:在方法之后执行
异常通知:方法出现异常
最终通知:在后置之后执行
环绕通知:在之前和之后执行
*切面:把增强应用到具体的方法上面,过程称为Aspect(切面)。
把增强用到切入点的过程
Spring的aop操作
1.在spring里进行aop操作,使用aspectj实现
2.使用aspectj实现aop有两种方式
(1)基于aspectj的xml配置
(2)基于aspectj的注解方式
Aop操作准备
1.导入jar包
aopalliance
aspectjweaver
spring-aop-4.2.4RELEASE.jar
spring-aspects-4.2.4RELEASE.jar
2.创建spring核心的配置文件
xml中配置aop约束
使用表达式配置切入点
1.切入点:实际增强的方法
2.常用的表达式
(1)execution(* (增强方法的全路径))
(2)execution(* (增强类的全路径).*)
(3)execution(* *.*(..))
aspectj的aop操作
(xml)
<bean id="book" class=""></bean>
<bean id="mybook" class=""></bean>
<aop:config>
配置切入点
<aop:pointcut expression="execution(* Book.*(...))" id="pointcut1"/>
配置切面
<aop:aspect ref="mybook">
配置增强类型
<aop:before method="before1" pointcut-ref="pointcut1"/>
<aop:after-returning method="after1" pointcut-ref="pointcut1"/>
<aop:around method="around1" pointcut-ref="pointcut1"/>
</aop:aspect>
</aop:config>
注:环绕通知
public void around1(ProceedingJoinPoint ProceedingJoinPoint) throws Throwable{
System.out.println("方法之前....")
proceedingJoinPoint.proceed();
System.out.println("方法之后....")
}
基于aspectj的注解aop
1.使用注解方式实现aop操作
第一步 创建对象
第二步 在spring的核心文件中开启aop的操作
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<bean id="" class=""></bean>
第三步:在增强类上使用注解实现aop操作
1.在增强类上添加 @Aspect
2.@Before 实例 @Before(value="execution(* Book.*(...))")
@AfterReturning
@Around
@AfterThrowing
@After
阅读全文
0 0
- spring AOP 部分代码
- spring aop部分
- Spring相关文档翻译-chapter9(AOP部分)
- 【Spring源码】AOP部分源码解读
- Spring基础部分(ioc,aop,事物)
- Spring Framework中的面向方面编程(AOP),第一部分
- Spring Framework中的面向方面编程(AOP),第二部分
- Spring在配置Shiro 关于AOP的部分记录
- Tiny-Spring源码阅读(二)、AOP部分的理解
- AOP、Spring的AOP
- AOP--Spring AOP
- Spring AOP 嵌套AOP
- spring AOP
- Spring AOP
- Spring AOP
- spring aop
- Spring AOP
- spring AOP
- 2017中国容器技术使用情况有奖调查
- NKOJ 1314 爬山(背包dp)
- ThreadPool中变量ctl的分析
- 明明的随机数
- centos 下的zabbix以及常见问题
- spring aop部分
- iOS开发 HomeKit Accessory Simulator
- 远程连接树莓派,ssh,putty,vnc,xrdp
- Linux下安装Matlab2014及破解
- 高精度乘法
- python里把dir函数当作查看成员输出
- 《机器学习实战》代码片段学习4 Logistic回归
- 某某复试机试题--------删除代码中的注释
- 我的第一篇博客