0 0

spring aop后切如何获取目标方法中的某个局部变量值5

想在切面中实现日志流水的记录功能,但日志中有部分字段是需要在业务操作过程中设置,并不出现在目标方法的入参或返回值中,实例代码如下,请各位大大赐教。
class BussinessA{
    public Object execute(Object o){
        String temp = "设置到日志中";
        //略
    }
}

class Aspect{
     @After
     public void saveTransLog(){
         //如何获取前面的temp变量
     }
}
 
2015年1月05日 14:55

2个答案 按时间排序 按投票排序

0 0

Log4j的话,是可以设定Thread级别的变量供以后使用的。貌似叫MDC。。。可以查查看。
这个和AOP关系不大,直接用Log4j的API就可以,内部也是基于ThreadLocal实现的。

2015年1月06日 18:42
0 0

这个aop只能对方法的参数进行操作,如果要拿的话,可以设置到对象o里面去在拿

2015年1月06日 11:52

相关推荐

    在自定义spring aop中使用el获取拦截方法的变量值。

    标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...

    Spring Aop Advise方法(增强方法) 中获取目标方法的参数

    - Spring AOP默认仅支持方法级别的通知,如果需要访问局部变量或更复杂的切面逻辑,可以使用AspectJ库,它提供了更强大的语言级切入点表达式和更细粒度的控制。 5. **使用注解声明切面**: - Spring AOP支持使用`...

    j2ee的aop方式记录日志

    AOP允许我们定义“切面”,这些切面可以包含方法拦截器,这些拦截器在目标方法执行前、后或异常时被调用。在Spring中,我们可以使用注解或XML配置来定义切面。 1. **创建日志切面** - 定义一个切面类,通常包含一...

    spring aop 拦截业务方法,实现权限控制示例

    Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许我们在不修改业务代码的情况下,通过代理机制对特定的“切点”(方法、类等)进行增强,实现如日志记录、事务管理、权限控制等功能。在这个示例中,...

    从ThreadLocal的使用到Spring的事务管理

    2. 在需要的地方,通过set方法设置线程局部变量的值。 3. 在合适的时候,通过get方法获取当前线程的变量副本。 4. 不再使用时,调用remove方法清除线程局部变量,防止内存泄漏。 接下来,我们转向Spring框架的事务...

    高级开发spring面试题和答案.pdf

    在Spring框架中,面试常涉及的关键知识点包括Spring的IoC(控制反转)、依赖注入、Bean的生命周期、AOP(面向切面编程)、事务管理、设计模式以及特定的类和注解如`@Service`、`@Repository`和`ThreadLocal`的使用。...

    spring 动态切换数据源

    - `DynamicDS.java`: 这个类通常会实现Spring的`AbstractRoutingDataSource`,该类允许我们根据某种规则(比如事务上下文、线程局部变量等)来决定使用哪个数据源。我们需要覆盖`determineCurrentLookupKey`方法,...

    aop-plugin:aop,一个方法多个公司的差异需求,插件化

    在IT行业中,AOP(Aspect-Oriented Programming,面向切面编程)是一种强大的设计模式,它允许程序员将关注点从核心业务逻辑中分离出来,如日志、事务管理、安全性等。AOP-plugin是一个专门为满足不同公司对于同一...

    Spring100题.pdf

    Spring的单例Beans在多线程环境下并不是线程安全的,开发者需要自行处理线程安全问题,比如使用局部变量、同步机制等方式。 SpringBoot是Spring的一个子项目,它提供了快速搭建和配置Spring应用的方式,简化了基于...

    ASM函数监听实现(三)拦截注入函数的参数值 (函数执行前)

    ASM提供了一个`MethodVisitor`接口,通过实现这个接口,我们可以访问到方法的各个部分,包括方法的参数、局部变量、指令等。为了在函数执行前拦截参数值,我们需要在`visitInsn`方法中插入自定义逻辑,这通常是在...

    真正意义的spring动态切换数据源源码

    这个抽象类维护了一个数据源路由决策表,可以根据特定的规则(如事务上下文、线程局部变量等)来决定使用哪个数据源。开发者需要继承这个类并实现`determineCurrentLookupKey()`方法,该方法返回一个键,该键对应于...

    Spring框架1

    1. **Spring AOP(面向切面编程)**:Spring AOP 是一种用于实现横切关注点(如日志、事务管理)的技术,它允许我们在不修改源代码的情况下,向应用程序中添加额外的功能。Spring AOP 采用动态代理织入切面,分为两...

    4 后台使用Spring中的Bean质量评估193210111党涛1

    Spring提供了一些策略来确保Bean的安全性,如使用线程局部变量、同步方法或避免使用共享状态。 其次,最常见的创建Bean实例的方式是通过构造器。当不使用构造注入时,Spring会自动寻找无参构造器来创建Bean实例。...

    Spring事务处理-ThreadLocal的使用

    这样,每次数据库操作通过AOP代理时,都能够从ThreadLocal中获取到当前事务的状态,从而决定是否需要加入到当前事务中。 接下来,我们来看`SimpleConnectionPool`这个文件。这可能是数据库连接池的一个实现,通常...

    dynamic-datasource-spring-boot-starter_多数据源_

    3. **基于ThreadLocal**:利用线程局部变量,每个线程绑定一个数据源,这样在同一个线程中的所有操作都会使用相同的数据源。 4. **基于注解**:通过在方法或类上添加特定注解,指定该方法或类应该使用哪个数据源。 ...

    ASM操作字节码,动态生成Java类class文件

    3. **MethodVisitor**: 这是用来访问和修改方法的接口,包括方法的访问标志、返回类型、参数类型、局部变量表和字节码指令。 4. **FieldVisitor**: 类似于MethodVisitor,但用于处理类的字段信息。 5. **Opcode**:...

    spring-expression-3.2.3.release.jar.zip

    在实际应用中,SpEL广泛用于Spring的依赖注入、AOP切面、MVC控制器以及其他需要动态计算的场景。例如,在配置文件中,我们可以使用SpEL来动态设置Bean的属性值,如`['myPropertyKey']}" />`,这样系统属性的变化就能...

    理解ThreadLocal

    * `protected Object initialValue()`: 返回该线程局部变量的初始值,该方法是一个 protected 的方法,显然是为了让子类覆盖而设计的。 ThreadLocal 的实现思路非常简单,在 ThreadLocal 类中有一个 Map,用于存储...

    struts2+hirbate+spring面试题

    确保Action线程安全的方法包括:声明局部变量、扩展RequestProcessor以每次创建新的Action实例,或者在Spring中使用`scope="prototype"`配置来管理Action。 2. **Struts2的MVC实现** 在Struts2中: - **Model**:...

Global site tag (gtag.js) - Google Analytics