我试图在方法注释上创建一个Aeyj切入点,但我总是用不同的方法失败。我使用的是aspectj自动代理(我在Spring上下文中没有配置其他编织)。我的类如下所示:
java prettyprint-override">public interface Intf
{
@SomeAnnotation
void method1() throws SomeExc;
}
public class Impl implements Intf
{
@Override
public void method1() throws SomeExc
{
//...
}
}
@Aspect
public class MyAspect
{
@AfterThrowing(
pointcut = "execution(* *(..)) && @annotation(SomeAnnotation)",
throwing = "error")
public void afterThrowing(JoinPoint jp, Throwable error)
{
System.err.println(error.getMessage());
}
}
@Component
public class Usage
{
@Autowired
Intf intf;
public void doStuff()
{
intf.method1();
}
}
所以我想知道为什么aspectj不会创建切入点。我设法使用执行(**(…)使其工作抛出一些exc)这对我来说很好,但我仍然想知道我做错了什么。
另外,由于方法1
是在接口中定义的,我指定了实现类的注释,有没有办法让它以这种方式工作?其他代理机制,如事务管理/安全,在Spring的其他部分也是这样工作的,对吗?如果我使用接口代理,指定实现类的切入点会创建切入点吗?(我想不会,因为我没有使用cglib)
尝试将@组件添加到MyAspect类
@Component
@Aspect
public class MyAspect {
...
我不能用“”运算符和多个注释来做切入点。我试图为一些JBehave注释创建一个切入点(@givid、@then、@when)。 为这三个注释创建切入点的语法是什么?因为我在其他切入点中使用了逻辑OR运算符,所以我假设它类似于: 但是它不起作用,我得到一个不一致的绑定异常。我尝试了其他组合,但找不到一个这样做的诀窍。
我正在使用Spring AOP进行日志记录。我想创建一个切入点,该切入点适用于除具有特定注释的方法外的所有方法,但我不知道如何进行。我所发现的只是如何包含带有注释的方法。
问题内容: 我需要定义一个切入点,该切入点触发使用自定义注释注释的spring服务的所有方法的执行。我想定义切入点的注释将在另一个注释上。 然后该服务将被注释如下 我尝试使用以下切入点定义,但是仅当@Y在服务本身上时才有效,这意味着它看不到注释在@X上 问题答案: 我在应用程序中有这个确切的需求。我找到了这个答案,但不满意无法完成。 经过更多搜索之后,我发现了用于AspectJ / Spring切
对于用@X注释的类中的方法或用@X注释的方法,我需要一个切入点。我还需要注释对象。如果类和方法都被注释,我更喜欢将方法注释作为参数。 我尝试了以下操作,这会产生“绑定不一致”的警告。(为什么不直接将其设置为null?) 以下内容创建了“穿过切入点中的“||”的参数x的不明确绑定”警告。(在我看来,这不一定有意义:为什么不绑定第一个短路评估?) 如果存在类和方法注释,则将前面的尝试拆分为两个,自然会
This action, as name says, toggle comment on selection. Almost all programmer’s text editors have such action, but this one works differently. When there’s no selection, editor’s action toggles commen
假设我有这样一种方法: 是否有一个切入点表达式可以选择所有参数带有@CustomAnnotation注释的方法?如果是这样的话,有没有一种方法可以让我访问“value”参数?