AspectJ没有执行建议

时间:2017-10-04 17:35:44

标签: java intellij-idea aspectj spring-aop

我试图理解AspectJ是如何工作的,所以我构建了这个非常简单的例子。我可以从Web浏览器执行x()但是applaud()永远不会被执行。为什么?我怎样才能执行它(除了在x()中调用它?)我试图在不创建xml的情况下完成所有这些操作。 我的环境是Java,Spring,AspectJ,IntelliJ和Windows 10。

package hello;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Aspect
@Configuration
@EnableAspectJAutoProxy
public class SomeClass {

    @RequestMapping("/x")
    @Pointcut("execution(* hello.SomeClass.x())")
    public String x() {
        System.out.println("in x");
        return "<div><h1>Some content</h1></div>";
    }

    @After("hello.SomeClass.x()")
    public void applaud() {
        System.out.println("CLAPCLAPCLAPCLAPCLAP");
    }
}

0 个答案:

没有答案