Spring学习之旅(八)Spring 基于AspectJ注解配…
2018-06-18 03:04:46来源:未知 阅读 ()
由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现。
本文一下未贴出的相关代码示例请关注小编的上篇博文《Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较》,在此不再赘述。
基于AspectJ注解配置的AOP编程,就是将所有配置信息都放在源代码中以注解的方式标注。以与“基于XML配置”的AOP编程相区别。
1)Spring AOP注解就是依赖AspectJ来实现。因此使用Spring AOP注解,必须引入Aspectj框架及相应的包(aspectjrt.jar和aspectjweaver.jar)。
关于包的下载与引入,请参考小编的另外一篇博文《Spring学习之旅(五)极速创建Spring AOP java工程项目》
所以“基于AspectJ注解配置的AOP编程”实际上是:Spring AOP+AspectJ框架进行切面编程。
2)创建Spring配置文件,并在配置文件中引入aop命名空间和context命名空间,并配置“AspectJ的注解支持”,以及自动扫描的包的支持。
3)基于AspectJ注解声明切面
即在设计切面类时,在java源代码中采用注解标注“切面的相关信息”。
讲一个java类声明为一个切面:
首先,要注解成一个Bean,必须是IoC的Bean,可以是用@Component注解定义Bean。
其次,注解声明为一个切面,使用@Aspect注解,同时在类的方法注解中给出与该切面相关的“通知”和“切入点”
然后,我们还可以指定切面的优先级,使用@Order(级别号)。级别号为大于等于0的整数,值越小,优先级越高。
4)基于AspectJ注解声明通知
标注在切面类的方法上,AspectJ支持5种类型的通知注解:
@Before、@After、@AfterRunning、@AfterThrowing、@Around
举一个例子:
//注解为前置通知,并注解其切入点表达式 @Before("execution(* com.edu.aop.ArithmeticCalculator.*(..))") public void validationArgs(JoinPoint joinPoint){ //具体方法实现 }
在上篇博文中的实例中,给出了通知内切入点表达式的两种写法:一种具体确定的;一种泛化的。
当通知括号内除了切入点表达式属性外,还有其他属性时,应写明属性对应的属性值。
比如:
@AfterRunning(pointcut="execution(* com.edu.aop.*.*(..))",returning="abc") public void afterMethod(JoinPoint joinPoint,Object abc){ //具体方法实现 }
@AfterThrowing(pointcut="execution(* com.edu.aop.*.*(..))",throwing="e") public void afterMethod(JoinPoint joinPoint,ArithmeticException e){ //具体方法实现 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- java学习之第一天 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash