我有下一个接口和实现:
@Step
public interface TestAopComp {
void test();
}
@Component
public class TestAopCompImpl implements TestAopComp{
public void test(){
System.out.println("test");
}
}
我需要截取类的所有方法的执行,它扩展了带有注释@步骤的类。请帮我写切入点。
例如,我使用下一个切入点来截取类的方法,它由@步骤注释:
@Pointcut("@within(Step)")
但它不工作,如果我注释只有超级类
我调查问题。如果您使用从类扩展(它可能是抽象的)并将注释宣布为继承,那么我的切入点将有效,但它不适用于实现的接口。
下一个示例将是可行的,但它不适用于已实现接口上的注释:
@Step
public abstract class TestAopComp {
public abstract void test();
}
@Component
public class TestAopCompImpl extends TestAopComp{
public void test(){
System.out.println("test");
}
}
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Step {
}
@Component
@Aspect
public class Aspect {
@Pointcut("@within(Step)")
public void stepClass(){}
@Around("stepClass()")
public void stepAround(ProceedingJoinPoint pjp){
System.out.println("before");
try {
pjp.proceed(pjp.getArgs());
} catch (Throwable throwable) {
throwable.printStackTrace();
}
System.out.println("after");
}
}
对于用@X注释的类中的方法或用@X注释的方法,我需要一个切入点。我还需要注释对象。如果类和方法都被注释,我更喜欢将方法注释作为参数。 我尝试了以下操作,这会产生“绑定不一致”的警告。(为什么不直接将其设置为null?) 以下内容创建了“穿过切入点中的“||”的参数x的不明确绑定”警告。(在我看来,这不一定有意义:为什么不绑定第一个短路评估?) 如果存在类和方法注释,则将前面的尝试拆分为两个,自然会
问题内容: 我正在寻找一个切入点,该切入点与类中具有特定注释的子类的类中的方法执行相匹配。出色的AspectJ备忘单帮助我创建了以下切入点: 这与带有@AnnotationToMatch的类A的所有方法调用匹配,但与扩展了A的类B的方法匹配。我如何将两者匹配? 问题答案:
我试图在方法注释上创建一个Aeyj切入点,但我总是用不同的方法失败。我使用的是aspectj自动代理(我在Spring上下文中没有配置其他编织)。我的类如下所示: 所以我想知道为什么aspectj不会创建切入点。我设法使用执行(**(…)使其工作抛出一些exc)这对我来说很好,但我仍然想知道我做错了什么。 另外,由于是在接口中定义的,我指定了实现类的注释,有没有办法让它以这种方式工作?其他代理机制
我有两节课 使用Spring AOP,我需要包装: 如果注释放在类级别上,则对使用注释的所有公共方法的所有调用 这是我的切入点 这适用于的公共方法,但是当我调用时,未包装如何包含父方法?
我有一个包含三个字段的表,比如a、b、c。我想添加一个约束,确保如果a不为null,那么b和c也不为null。我已经使用以下SQL完成了这项工作 使用hibernate注解@Check有没有办法达到同样的效果? 我找不到一个有用的注释示例,开发人员倾向于根本不使用它吗?
问题内容: 我需要 在类中使用@X注释的方法或使用@X注释的方法的切入点 。我还 需要注释对象 。如果同时注释了类和方法,则 我更喜欢将方法注释作为参数 。 我尝试了以下操作,这将创建“不一致的绑定”警告。(为什么不将它们设置为null?) 下面创建“跨’||’的参数x的模糊绑定 在切入点”警告。(我认为这并不一定有意义:为什么不绑定第一个短路评估?) 如果存在类和方法注释,则将先前的尝试自然地分