掌握基于XML的AOP实现,能够基于XML的方式实现Spring AOP
使用AOP代理对象的好处
因为Spring AOP中的代理对象由loC容器自动生成,所以开发者无须过多关注代理对象生成的过程,只需选择连接点、创建切面、定义切点并在XML文件中添加配置信息即可。Spring提供了一系列配置Spring AOP的XML元素。
1.配置Spring AOP的XML元素
2.配置切面
在Spring的配置文件中,配置切面使用的是
3.配置切入点
在Spring的配置文件中,切入点是通过
Spring AOP切入点表达式的基本格式
execution表达式各部分参数说明
4.配置通知
在Spring的配置文件中,使用
代码示例:
pom.xml
org.aspectj aspectjrt 1.9.1 runtime org.aspectj aspectjweaver 1.8.7
package cn.hdc.demo3.dao.impl;import cn.hdc.demo3.dao.UserDao;public class UserDaoImpl implements UserDao {@Overridepublic void insert() {System.out.println("添加用户信息");}@Overridepublic void delete() {System.out.println("删除用户信息");}@Overridepublic void update() {System.out.println("更新用户信息");}@Overridepublic void select() {System.out.println("查询用户信息");}
}
package cn.hdc.demo3.dao;public interface UserDao {public void insert();public void delete();public void update();public void select();
}
package cn.hdc.demo3.entity;import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;//切面
public class XmlAdvice {/*** @param joinpoint 内部封装了切入点的相关信息*/public void before(JoinPoint joinpoint) {System.out.println("前置通知");System.out.println("目标类:" + joinpoint.getTarget());System.out.println("切入点的方法名:" + joinpoint.getSignature().getName());}public void after(JoinPoint joinPoint) {System.out.println("后置通知");}public void around(ProceedingJoinPoint pjp) throws Throwable {System.out.println("自定义环绕通知111,在切入点之前执行");//执行原有功能Object res = pjp.proceed();System.out.println("自定义环绕通知222,在切入点之后执行");//返回原有方法的返回值}public void after_returning() {System.out.println("返回通知,返回值结束才会执行(如果出现异常,不会执行)");}public void after_throwing(){System.out.println("异常通知,出现异常才会通知");}
}
上一篇:vector你得知道的知识