Spring——AOP切面(实现消息通知)

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

消息通知通常有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&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值