当前位置: 首页 > 知识库问答 >
问题:

为什么Spring Boot AOP切入点没有被触发

锺离鸿
2023-03-14

wanner测试spring boot(1.5.20)aop(最小代码)

类被aopped时,

 @Component
 public class Test {
     public Test() {
         System.out.println("test constr");
     }

     public void print() {
         System.out.println("test print");
     }
 }
@Aspect
@Component
public class LoggingAspect {
    public LoggingAspect() {
        System.out.println("aspect constr");
    }

    @After("execution(* *.Test.*(..))")
    public void log(JoinPoint joinPoint) {
        System.out.println("aspect print");
    }
}
@SpringBootApplication
@EnableAspectJAutoProxy(proxyTargetClass = true)

public class AopApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(AopApplication.class, args);
    }

    @Autowired
    private Test test;

    @Override
        public void run(String... strings) throws Exception {
        test.print();
    }
}

请让我知道我错过了什么

共有1个答案

郑哲彦
2023-03-14

弄明白。从.测试。到com.example.aop.test.*,那么就可以工作了。

 类似资料:
  • 我正在学习Java,正在使用java 8,spring 5.3.9和Apache Tomcat 9。我已经将我的jar文件添加到我的构建路径中的类路径中,将Apache Tomcat添加到我的服务器中,我的项目运行得非常好。现在我开始使用beans和xml文件,我遇到了一个问题。我的代码的一部分被触发,另一部分被忽略。 我有以下界面 FortuneService.java: 和一个快乐财富服务类:

  • 在JavaScript中,我按住两个键,并且被完美触发。当我释放其中一个键时,被触发。到目前为止一切都很好。但是我仍然按住一个键,那么为什么没有被触发呢?我需要在我的游戏中发生这种情况。我做错了什么吗?这是预期的反应吗?有什么解决办法吗?

  • 我对Spring和AOP是新手。我正在尝试这个简单的事情,我已经创建了一个自定义注释,当放在任何方法之前时,它应该执行一些代码。这是我创建的注释 问题是我的spring aop从来没有被触发过。我在中包含了一个bean 有人能指出我缺少什么吗?

  • 问题是@before和@afterreturn有效,但对于pointcut却不是这样。

  • 因此,我的问题是:为什么还没有被否决?如果核心Java团队已经决定它是坏的,那么他们一定也考虑过弃用。他们反对这样做的理由是什么(在Java8中,它仍然没有被反对)?

  • 今天我开始玩分支,检查两个布尔值。我很确定,在某些优化级别上,它们将简单地添加并检查,但gcc和CLANG不是这样。为什么gcc不优化两个bool检查,用addition和一个check替换它们?让我给你看一个例子: 两个分支(test+je)不应该比加法和分支(add+jne)慢吗? 编辑:我真正的意思是乘法,因为在true和false的情况下(1+0),加法给出true(1),但乘法给出正确的