基于xml的AOP实现
创始人
2024-05-31 09:55:40
0

掌握基于XML的AOP实现,能够基于XML的方式实现Spring AOP

使用AOP代理对象的好处

因为Spring AOP中的代理对象由loC容器自动生成,所以开发者无须过多关注代理对象生成的过程,只需选择连接点、创建切面、定义切点并在XML文件中添加配置信息即可Spring提供了一系列配置Spring AOP的XML元素。

1.配置Spring AOP的XML元素

 

2.配置切面

在Spring的配置文件中,配置切面使用的是元素,该元素会将一个已定义好的Spring Bean转换成切面Bean,因此,在使用元素之前,要在配置文件中先定义一个普通的Spring Bean。Spring Bean定义完成后,通过元素的ref属性即可引用该Bean。配置元素时,通常会指定id和ref两个属性。

元素的id属性和ref属性的描述

 

3.配置切入点

在Spring的配置文件中,切入点是通过元素来定义的。当
元素作为元素的子元素定义时,表示该切入点是全局的,它可被多个切面共享;当元素作为元素的子元素时,表示该切入点只对当前切面有效。定义元素时,通常会指定id、expression属性。

元素的id属性和expression属性描述

 

Spring AOP切入点表达式的基本格式

execution表达式各部分参数说明

 

4.配置通知

在Spring的配置文件中,使用元素配置了5种常用通知,分别为前置通知、后置通知、环绕通知、返回通知和异常通知。 

元素的常用属性

代码示例:

pom.xml

org.aspectjaspectjrt1.9.1runtimeorg.aspectjaspectjweaver1.8.7

package cn.hdc.demo3.dao.impl;import cn.hdc.demo3.dao.UserDao;public class UserDaoImpl implements UserDao {@Overridepublic void insert() {System.out.println("添加用户信息");}@Overridepublic void delete() {System.out.println("删除用户信息");}@Overridepublic void update() {System.out.println("更新用户信息");}@Overridepublic void select() {System.out.println("查询用户信息");}
}
package cn.hdc.demo3.dao;public interface UserDao {public void insert();public void delete();public void update();public void select();
}
package cn.hdc.demo3.entity;import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;//切面
public class XmlAdvice {/*** @param joinpoint 内部封装了切入点的相关信息*/public void before(JoinPoint joinpoint) {System.out.println("前置通知");System.out.println("目标类:" + joinpoint.getTarget());System.out.println("切入点的方法名:" + joinpoint.getSignature().getName());}public void after(JoinPoint joinPoint) {System.out.println("后置通知");}public void around(ProceedingJoinPoint pjp) throws Throwable {System.out.println("自定义环绕通知111,在切入点之前执行");//执行原有功能Object res = pjp.proceed();System.out.println("自定义环绕通知222,在切入点之后执行");//返回原有方法的返回值}public void after_returning() {System.out.println("返回通知,返回值结束才会执行(如果出现异常,不会执行)");}public void after_throwing(){System.out.println("异常通知,出现异常才会通知");}
}

 

 

 

 

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...