Spring Aop 实现函数内部增强

本文探讨了如何在Spring AOP中实现方法内部的增强。内容包括两种策略:一是将方法内部功能拆分为独立函数,从而在新函数前后进行切面增强;二是针对无法拆分的场景,通过创建空目标函数,传递变量并在此处织入切面。这种方法使得切面能够获取并处理函数内部的变量,如getCount和sumCount。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring Aop 的一个切面包括 1.增强类型(函数调用前、后,抛出异常和函数调用前后) 2.增强的业务逻辑 3.连接点

而Spring Aop 只支持方法的连接点,当我想在方法内部织入增强时,可以有两种方式:

1.比如一个函数A有a,b,c三种功能,我想在b前也即函数中间织入一个增强,那么可以把b单独拿出来写成一个独立的函数,然后在A中调用b,这样就可以b前、后织入切面了。

2.一般函数只有一种功能,难以进行拆分。例如在函数中间有一个变量a,现在我想在这个变量后织入增强,同时把该变量传递过去,那么我可以在该类中定义一个空函数(什么也不做)作为目标函数,然后把变量a赋给该函数的形参,再在该函数织入切面,那么这个切面可以获得目标函数传入的参数即a。主函数调用这个空函数即可。

例如在我的函数中,我想把变量getCount与sumCount传递给切面进行处理(假设切面的功能就是打印变量)

public void run() {
		while (true) {
			Query query = session.createQuery("from VehicleInfo");
			query.setFirstResult(getCount * getNumOneTime);
			query.setMaxResults(getNumOneTime);
			List
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值