简介: 下面,通过一个案例讲授如何通过Advisor的子接口进行Spring AOP开发,步骤如下所述。
01、创建项目,并导入相关依赖
在项目依赖清单的基础上增加Spring-AOP依赖,具体如下:
02、创建接口
在src/main/java目录下创建一个名为spring.aop.demo.common.dao的包,并创建BookDao接口,代码如文件1所示。
【文件1】BookDao.java
03、创建接口的实现类
在spring.aop.demo.common.dao.impl包下创建BookDao接口的实现类BookDaoImpl,代码如文件2所示。
【文件2】BookDaoImpl.java
04、配置前置通知类
编写一个实现MethodBeforeAdvice接口的类,用以实现前置通知。通知的功能是在调用BookDao的方法前进行权限检查,代码如文件3所示。
【文件3】BookDaoBeforeAdvice.java
05、创建配置文件
在src/main/resources目录下创建配置文件aop-common.xml,使用Spring的org.springframework.aop.framework.ProxyFactoryBean类创建动态代理,代码如文件4所示。
【文件4】aop-common.xml
如文件4所示,第10~11行定义目标对象bookDao,第13~14行定义通知,第16~25行借助ProxyFactoryBean生成代理对象。根据目标对象的类型(是否实现了接口)自动选择使用 JDK 动态代理或 CGLIB 动态代理机制,为目标对象(bookDao)生成对应的代理对象(bookDaoProxy)。
06、编写测试代码
在src/test/java目录下创建测试类,读取配置文件并创建BookDaoImpl的代理对象,代码如下:
调用代理对象的方法(第10~11行),可见在调用目标类的方法前的增强效果,如图3所示。
■ 图3 所有方法都被增强后的输出
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)