Java Web实战 | Spring AOP开发

简介: 下面,通过一个案例讲授如何通过Advisor的子接口进行Spring AOP开发,步骤如下所述。
+关注继续查看

640.jpg

01、创建项目,并导入相关依赖

在项目依赖清单的基础上增加Spring-AOP依赖,具体如下:

640.png

02、创建接口

在src/main/java目录下创建一个名为spring.aop.demo.common.dao的包,并创建BookDao接口,代码如文件1所示。
【文件1】BookDao.java

640.png

03、创建接口的实现类

在spring.aop.demo.common.dao.impl包下创建BookDao接口的实现类BookDaoImpl,代码如文件2所示。
【文件2】BookDaoImpl.java

640.png
fb6ae76e25e70a0089e88e3ad24fea87.png

04、配置前置通知类

编写一个实现MethodBeforeAdvice接口的类,用以实现前置通知。通知的功能是在调用BookDao的方法前进行权限检查,代码如文件3所示。

【文件3】BookDaoBeforeAdvice.java

640.png

05、创建配置文件

在src/main/resources目录下创建配置文件aop-common.xml,使用Spring的org.springframework.aop.framework.ProxyFactoryBean类创建动态代理,代码如文件4所示。

【文件4】aop-common.xml

640.png


如文件4所示,第10~11行定义目标对象bookDao,第13~14行定义通知,第16~25行借助ProxyFactoryBean生成代理对象。根据目标对象的类型(是否实现了接口)自动选择使用 JDK 动态代理或 CGLIB 动态代理机制,为目标对象(bookDao)生成对应的代理对象(bookDaoProxy)。

06、编写测试代码

在src/test/java目录下创建测试类,读取配置文件并创建BookDaoImpl的代理对象,代码如下:

640.png


调用代理对象的方法(第10~11行),可见在调用目标类的方法前的增强效果,如图3所示。

640.png


■ 图3 所有方法都被增强后的输出

目录
相关文章
|
7天前
|
XML Java 数据格式
【Spring】全面讲解IOC、AOP、注入方式、bean的生命周期、aop通知应用 spring与web容器整合
Spring是一个开源的轻量级Java应用开发框架,它提供了一种简单、高效、灵活的方式来构建企业级应用程序。Spring框架的核心特点是依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming),它通过一组模块化的组件提供全面的支持,使开发人员能够快速搭建可扩展、可维护的应用。
|
8天前
|
Java 数据安全/隐私保护 Spring
Spring AOP(面向切面编程)
AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
16 0
|
9天前
|
监控 Java Spring
解锁Spring AOP的神秘面纱
解锁Spring AOP的神秘面纱
|
10天前
|
XML Java 数据格式
130.【Spring注解_AOP】(二)
130.【Spring注解_AOP】
24 0
|
10天前
|
消息中间件 Java Kafka
130.【Spring注解_AOP】(五)
130.【Spring注解_AOP】
34 0
|
10天前
|
Java Maven Spring
130.【Spring注解_AOP】(四)
130.【Spring注解_AOP】
25 0
|
10天前
|
Java Spring
130.【Spring注解_AOP】(三)
130.【Spring注解_AOP】
19 0
|
10天前
|
Java 测试技术 Maven
130.【Spring注解_AOP】(一)
130.【Spring注解_AOP】
26 0
|
12天前
|
设计模式 缓存 Java
Spring AOP与静态代理/动态代理
我们一开始简单的初步认识了下代理模式,其中常见的实现方式有静态代理与动态代理,同时写了打印机🖨️的调用时机代码。接着我们思考🤔代理模式和我们使用spring aop有什么联系?简单的了解aop 与spring aop的实现方式。 最后我们比较了jdk 与cglib 的代理模式 ,接着简单过一遍Spring aop 的原理与执行流程。
50 0
|
19天前
|
Java Spring
【Spring】AOP面向切面编程(二)
【Spring】AOP面向切面编程(二)
14 0
相关产品
云迁移中心
推荐文章
更多