Spring中基于xml的AOP的详细步骤
Spring中基于xml的AOP的详细步骤 AOP(Aspect-Oriented Programming,即面向切面编程)是一种软件开发技术,它通过预编译方式和运行期动态代理实现程序功能的同一维护。AOP是OOP(Object-Oriented Programming,即面向对象编程)的延续,是软件开发中的一个热点,也是Spring框架中一个重要的内容。 在Spring框架中,AOP可以通过xml配置文件来实现。下面是基于xml的AOP的详细步骤: Step 1:创建Maven项目引入spring坐标 在pom.xml文件中添加Spring框架的依赖关系,例如: ``` <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.7</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> ``` Step 2:创建业务层接口 创建业务层接口,例如: ``` package com.mingqi.services; public interface IAccountService { / * 模拟登陆账户 */ void saveAccount(); / * 模拟更新账户 * @param id */ void updateAccount(int id); / * 模拟删除账户 * @return */ int deleteAccount(); } ``` Step 3:创建业务层实现类 创建业务层实现类,例如: ``` package com.mingqi.services.impl; import com.mingqi.services.IAccountService; public class AccountServices implements IAccountService { // 实现业务逻辑 } ``` Step 4:创建Aspect 创建Aspect,例如: ``` package com.mingqi.aspects; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class LoggingAspect { @Before("execution(* com.mingqi.services.IAccountService.*(..))") public void logging(JoinPoint joinPoint) { // 记录日志 } } ``` Step 5:在xml文件中配置AOP 在spring配置文件中添加AOP配置,例如: ``` <aop:aspectj-autoproxy/> <bean id="loggingAspect" class="com.mingqi.aspects.LoggingAspect"/> ``` 通过以上步骤,可以实现基于xml的AOP。在这个例子中,我们创建了一个业务层接口和实现类,然后创建了一个Aspect,并在xml文件中配置了AOP。这样,我们可以在不修改源代码的情况下,添加日志记录功能。 知识点: 1. AOP(Aspect-Oriented Programming):面向切面编程是一种软件开发技术,它通过预编译方式和运行期动态代理实现程序功能的同一维护。 2. JoinPoint:链接点,指的是那些被拦截到的点,在Spring中,这些点指的是方法,因为Spring只支持方法类型的连接点。 3. Pointcut:切入点,是指我们要对哪些JoinPont进行拦截的定义。 4. Advice:通知/增强,是指拦截到Joinpoint之后所要做的事情。 5. Weaving:织入,是指把增强应用到目标对象来创建新的代理对象的过程。 6. Proxy:代理,一类类被Aop织入增强后,就产生一个结果代理类。 7. Aspect:切面,是切入点和通知的结合。 8. Introduction:引介,是一种特殊的通知,在不修改类代码的前提下,Introduction可以在运行期为类动态的添加一些方法或field。














- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- yunio-物联网设备接入与数据处理资源
- 【地理信息系统】基于Google Earth Engine的影像时间序列分析:Hyperion卫星数据获取与统计
- 过程控制及自动化仪表总结.ppt
- vscode-server-linux-x64-1.94.tar.gz
- libreoffice+arm64部署
- 【遥感影像处理】基于Google Earth Engine的多源卫星影像统计脚本:特定区域影像数量与最新日期查询文档的主要内容
- 财务管理:国家规划布局内的重点软件企业和集成电路设计企业优惠备案.pdf
- 软件测试计划、文档及测试用例.ppt
- 【遥感影像处理】基于GEE的多源卫星影像计数与最新获取日期查询:特定地点影像可用性评估脚本设计
- 【遥感与地理信息系统】基于MODIS影像的森林覆盖估算脚本:gee平台森林覆盖变化分析与统计
- 基于plc升降横移式立体车库控制系统设计.docx
- ;狼十多公里老师的课感觉拉萨计划开工案例拉绳开关和
- 幻实影像软件代理协议书模板.doc
- zheng-API接口实战资源
- 遴选文档:发电系统安全生产月活动工作总结.doc
- Jdk8 linux和windows离线安装包


