spring使用注解(基于Aspect)

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

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

2.@Component

		2.1 相当于<bean/>
		2.2 如果没有参数,把类名首字母变小写,相当于<bean id=""/>
		2.3 @Component(“自定义名称”)

3.实现步骤

		3.1 在spring配置文件中设置注解在那些包中
		<context:component-scan
		 base-package="com.gtxd.advice,com.gtxd.test">
		 </context:component-scan>

		3.2 在demo类中添加@Component
		
			3.2.1 在方法上添加@Pointcut("")定义切点
		@Component public class Demo { 
		@Pointcut("execution(* com.bjsxt.test.Demo.demo1())") 
				public void demo1() throws Exception{ 
				// int i = 5/0; 
				System.out.println("demo1"); 
		} 
		}
		3.3 在通知类中配置
			
			3.3.1 @Component类被spring管理
			3.3.2 @Aspect相当于<aop:aspect/>表示通知方法在当前类中
		@Component 
		@Aspect 
		public class MyAdvice 
		{ 
		@Before("com.bjsxt.test.Demo.demo1()") 
		public void mybefore(){ 
		System.out.println("前置"); 
		} 
		@After("com.bjsxt.test.Demo.demo1()") 
		public void myafter(){ 
		System.out.println("后置通知"); 
		} 
		@AfterThrowing("com.bjsxt.test.Demo.demo1()") 
		public void mythrow(){ 
		System.out.println("异常通知"); 
		} 
		@Around("com.bjsxt.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、付费专栏及课程。

余额充值