博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring中基于Schema的AOP配置详解
阅读量:4178 次
发布时间:2019-05-26

本文共 1153 字,大约阅读时间需要 3 分钟。

应用中进行AOP的编程开发,通过Spring框架可以有两种选择:

利用 Spring AOP
利用 AspectJ(此处略)

利用Spring AOP进行AOP的编程开发,定义AOP相关实现有两种方式:

基于XML Schema的配置文件定义
通过@Aspect系列标注定义

下面我们详细介绍如何通过大家熟悉的XML配置文件进行AOP开发。

1.首先在XML配置文件中,引入AOP的XSD

...
注意其中的xmlns:aop

2.在XML配置文件在,所有与AOP相关的配置必须置于<aop:config>范围内

不过,在一个XML配置文件中可以有多个<aop:config>。

3.<aop:aspect>声明一个aspect

aspect就是一个普通的Java类。

...
...

4.<aop:pointcut>声明一个pointcut

pointcut就是符合插入aspect的条件的包名或类名。运行时,执行到此处,会插入关联的aspect。

<aop:pointcut>可以作为<aop:config>的直接子元素,声明通用的顶级pointcut,如上所示;也可以作为<aop:aspect>的子元素,为一个确切的aspect声明专用的pointcut。

...

5.为一个aspect声明advice

一个aspect可以声明多个advice。声明advice的时候,必须给出pointcut和被插入执行的method。

Spring AOP支持5种advice,包括<aop:before>、<aop:after>、<aop:after-returning>、<aop:after-throwing>、<aop:around>。当其他advice都不合适的情况下,才使用<aop:around>。下面以<aop:before>为例。

...

6.<aop:declare-parents>声明introduction

7.<aop:advisor>

advisor是Spring AOP所特有的概念,实际上advisor可以被看作是一个缩微的aspect,所以advisor不属于任何aspect。

一个advisor中只定义一个advice及关联的pointcut。

对于使用<tx:advice>定义的独立的advice,可以通过<aop:advisor>被关联到插入点,示例如下:

转载地址:http://njlai.baihongyu.com/

你可能感兴趣的文章
国内快速访问GitHub的方法,亲测有用
查看>>
键盘fn键常亮(一直亮),解决办法
查看>>
Xerces C++实现xml文件解析
查看>>
用户强制一台设备登录,其他设备登出
查看>>
spring实现单例及创建线程安全单例
查看>>
设计模式-- 模板方法模式
查看>>
SQL关键字执行顺序
查看>>
设计模式--适配器模式
查看>>
SpringMvc注解之@ControllerAdvice
查看>>
SQL--查询两个字段相同的记录
查看>>
多研究些架构,少谈些框架(1) -- 论微服务架构的核心概念
查看>>
多研究些架构,少谈些框架(2)-- 微服务和充血模型
查看>>
多研究些架构,少谈些框架(3)-- 微服务和事件驱动
查看>>
SQL性能优化梳理
查看>>
微服务架构技术栈
查看>>
想面试进BAT,不得不看的分布式锁,面试题都在这里了!!
查看>>
Redis最常被问到知识点总结
查看>>
这才是微服务拆分的正确姿势,值得学习!
查看>>
MySQL中一条SQL是如何执行的?
查看>>
MySQL的索引是什么?怎么优化?
查看>>