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