消息通知通常有5种:
- 前置通知
- 返回通知
- 异常通知
- 后置通知
- 环绕通知
1.采用注解的方式
这里使用简单计算器的例子作为示范:
声明一个Calculator的接口:
public interface Calculator {
int add(int i,int j);
int sub(int i,int j);
int mul(int i,int j);
int div(int i,int j);
}
这里只做简单的加减乘除运算。
实现该接口:
@Component
public class CalculatorImpl implements Calculator{
@Override
public int add(int i, int j) {
int result=i+j;
return result;
}
@Override
public int sub(int i, int j) {
int result=i-j;
return result;
}
@Override
public int mul(int i, int j) {
int result=i*j;
return result;
}
@Override
public int div(int i, int j) {
int result=i/j;
return result;
}
}
开始有一个@Component用来实例化一个bean对象。
然后我们想在每个方法执行前输出执行方法的名称和参数就需要配置一个切面对象了。
//把这个类声明为一个切面:需要把该类放入到IOC容器中,再声明为一个切面
@Order //指定切面的优先级,值越小级别越高
@Aspect
@Component
public class LoggingAspect {
//声明该方法是一个前置通知
@Before("execution(public int com.spring.aop.impl.Calculator.*(int, int))")
public void beforeMethod(JoinPoint joinPoint) {
String methodName=joinPoint.getSignature().getName();
List<Object> args=Arrays.asList(joinPoint.getArgs());
System.out.println("The method "+methodName&#

本文详细介绍了Spring AOP的使用,包括注解方式实现的前置、后置、返回、异常和环绕通知,并通过示例展示了如何配置bean及进行测试。在注解方式中,通过@Aspect和@Before等注解定义切面,控制通知的执行。同时,讨论了XML配置AOP的方式,以及基于接口和类的代理选择。
最低0.47元/天 解锁文章
449

被折叠的 条评论
为什么被折叠?



