gpt4 book ai didi

java - Spring AOP,切入点表达式 : annotation with specific param

转载 作者:搜寻专家 更新时间:2023-11-01 02:48:01 25 4
gpt4 key购买 nike

我有 Aspect 类,方法是 clear()

@Aspect  
public class Clear
{
@After("@annotation(org.springframework.transaction.annotation.Transactional)")
public void clear()
{
// do smth
}
}

现在我想在每次执行带有注释 @TransactionalreadOnly = true 的方法后调用这个方面,例如

@Transactional(readOnly = true)  
public void someMethod()
{
//...
}

没有自定义注释有没有办法做到这一点?

最佳答案

我觉得你很接近。

在您的clear 方法中,您应该接收JoinPoint 类型的参数。此参数将由 Spring 在运行时自动填充,通过它,您可以获得特定连接点的详细信息,包括 java.lang.reflect.Method,其中将包含您所需要的注释。

我是这样想的:

@Aspect  
public class Clear
{
@After("@annotation(org.springframework.transaction.annotation.Transactional)")
public void clear(final JoinPoint joinPoint)
{
final Method method = ((MethodSignature) joinPoint.getSignature()).getMethod();
final Transactional txAnnotation = methood.getAnnotation(Transactional.class);
final boolean isReadOnly = txAnnotation.readOnly();

//do conditional work based on isReadOnly
}
}

关于java - Spring AOP,切入点表达式 : annotation with specific param,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com