Java SpringAOP技术中注解方式是什么

Java SpringAOP技术中注解方式是什么

这篇文章主要为大家展示了“JavaSpringAOP技术中注解方式是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaSpringAOP技术中注解方式是什么”这篇文章吧。

1.配置xml扫描注解

<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><!--开启注解扫描--><context:component-scanbase-package="com.qcby"></context:component-scan></beans>

2.配置注解

packagecom.qcby;importorg.springframework.stereotype.Component;@Component(value="user")publicclassUser{//连接点/切入点publicvoidadd(){System.out.println("add......");}}

给切面类添加注解 @Aspect,编写增强的方法,使用通知类型注解声明

@Component@Aspect//生成代理对象publicclassUserProxy{}

3.配置文件中开启自动代理

<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><!--开启扫描--><context:component-scanbase-package="com.qcby"></context:component-scan><!--开启Aspect生成代理对象--><aop:aspectj-autoproxy></aop:aspectj-autoproxy></beans>

4.通知类型注解

@Before -- 前置通知

@AfterReturing -- 后置通知

@Around -- 环绕通知(目标对象方法默认不执行的,需要手动执行)

@After -- 最终通知

@AfterThrowing -- 异常抛出通知

packagecom.qcby;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;importorg.springframework.stereotype.Component;@Component@Aspect//生成代理对象publicclassUserProxy{//增强/通知---》前置通知@Before(value="execution(publicvoidcom.qcby.User.add())")publicvoidbefore(){System.out.println("前置通知.............");}//环绕通知@Around(value="execution(publicvoidcom.qcby.User.add())")publicvoidaround(ProceedingJoinPointproceedingJoinPoint)throwsThrowable{System.out.println("环绕前置.............");//执行被增强的方法proceedingJoinPoint.proceed();System.out.println("环绕后置.............");}//最终通知@After(value="execution(publicvoidcom.qcby.User.add())")publicvoidafter(){System.out.println("最终通知.............");}//后置通知@AfterReturning(value="execution(publicvoidcom.qcby.User.add())")publicvoidafterReturning(){System.out.println("后置通知.............");}//异常通知@AfterThrowing(value="execution(publicvoidcom.qcby.User.add())")publicvoidafterThrowing(){System.out.println("出错了.............");}}

5.测试类

packagecom.qcby.test;importcom.qcby.User;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassUserTest{@TestpublicvoidaopTest1(){ApplicationContextapplicationContext=newClassPathXmlApplicationContext("SpringConfig.xml");Useruser=(User)applicationContext.getBean("user");user.add();}}

6.结果

以上是“JavaSpringAOP技术中注解方式是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2022-03-03 21:25:11
收藏
分享
海报
0 条评论
30
上一篇:Java中对象比较的示例分析 下一篇:R语言如何导出高清图
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码