1.接口和类1.1 ISomeService 接口publicinterface ISomeService {publicvoid doSome();publicvoid dade();
}1.2 SomeService类publicclass SomeService implements ISomeService {//核心业务publicvoid doSome(){System.out.println("我们都要找到Java开发工作,薪资6,7,8,9,10K");}publicvoid dade() {//异常//int sun=5/0;System.out.println("++++++++++++++de+++++++++++++");}}1.3 MyAspect 类publicclass MyAspect {//前置...
1.若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。
2.若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。
* 程序中应优先对接口创建代理,便于程序解耦维护
* 标记为final的方法,不能被代理,因为无法进行覆盖
? JDK动态代理,是针对接口生成子类,接口中方法不能使用final修饰
? CGLib 是针对目标类生产子类,因此类或方法 不能使final的
* Spring只支持方法连接点...
1.概述2.基于XML的声明式
2.1简介2.2XML文件中常用元素的配置方式2.3具体代码实现
2.3.1编写切面类
package com.lin.aspect.xml;import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;public class MyAspect {// 前置通知public void myBefore(JoinPoint joinPoint) {// TODO Auto-generated method stubSystem.out.print("前置通知:模拟执行权限....");System.out.print("目标类是:" + joinPoint.get...
spring 基于XML的申明式AspectJ通知的执行顺序
关于各种通知的执行顺序
1. XML文件配置说明
1. 前置通知* 在目标类的方法执行之前执行。* 配置文件信息:<aop:after method="before" pointcut-ref="myPointcut3"/>* 应用:可以对方法的参数来做校验2. 最终通知* 在目标类的方法执行之后执行,如果程序出现了异常,最终通知也会执行。* 在配置文件中编写具体的配置:<aop:after method="after" pointcut-ref="myPointcut3"/>* 应用:例如像释放资源3. 后置通知* 方法正常执行后的通知。 * 在配置文件中编写具体的配置:...