Spring——13 注解(Aspect)

本文详细介绍了如何在Spring框架中使用AspectJ注解实现AOP(面向切面编程)。主要内容包括:如何配置Spring扫描指定包下带有注解的类,@Component、@Aspect等注解的使用,以及如何定义切点、前置、后置、异常和环绕通知。
摘要由CSDN通过智能技术生成

基于 Aspect 使用注解

1. spring 不会自动去寻找注解,必须告诉 spring 哪些包下的类中可能有注解

  1. 引入 xmlns:context
<context:component-scan base-package="com.youdian.advice">
</context:component-scan>

2. @Component

  1. 相当于
  2. 如果没有参数,把类名首字母变小写,相当于<beanid=””/>
  3. @Component(“自定义名称”)

3. 实现步骤

  1. 在 spring 配置文件中设置注解在哪些包中
<context:component-scan base-package="com.youdian.advice,com.youdian.test">
</cont ext:component-scan>
  1. 在 Demo 类中添加@Componet
    在方法上添加@Pointcut(“”) 定义切点
@Component 
public class Demo { 
	@Pointcut("execution(* com.youdian.test.Demo.demo1())") 
	public void demo1() throws Exception{ 
	// int i = 5/0; 
	System.out.println("demo1"); 
	} 
}
  1. 在通知类中配置
    ① @Component 类被 spring 管理
    ② @Aspect 相当于aop:aspect/ 标签 表示通知方法在当前类中
@Component 
@Aspect 
public class MyAdvice { 
	@Before("com.youdian.test.Demo.demo1()") 
	public void mybefore(){ 
	System.out.println("前置"); 
	} 
	@After("com.youdian.test.Demo.demo1()") 
	public void myafter(){ 
	System.out.println("后置通知"); 
	} 
	@AfterThrowing("com.youdian.test.Demo.demo1()") 
	public void mythrow(){ 
	System.out.println("异常通知"); 
	} 
	@Around("com.youdian.test.Demo.demo1()") 
	public Object myarround(ProceedingJoinPoint p) throws Throwable{ 
	System.out.println("环绕-前置");
	Object result = p.proceed(); 
	System.out.println("环绕-后置"); 
	return result;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值