12°

springboot AOP在web项目成功但在javaFX项目中不成功

今天发现在简单的javaFX项目中使用AOP不成功,具体说明如下:

public class NamePointCut {
    @Pointcut(value = "execution(* mytbnclick(..))")
    protected void methon2(){
}

}

@Configuration
@Aspect
@EnableAspectJAutoProxy (proxyTargetClass = true)
@ComponentScan(basePackages = "com.example.javafxminademo.controller")
@Component
public class NamePointCutAspect {
    //切面类中使用切点,并且要说明是哪个切点(包括是哪个切点类的哪个切点方法)
    @Before("NamePointCut.methon2()")
    public void aspectMethon1(JoinPoint joinPoint)
    {
        System.out.println("NamePointCutAspect.aspectMethon1");
    }
}

controller包下有一个javaFX的controller,其中有一个按钮的事件(说明:本javaFX项目在没有引入AOP之前一切正常):

@FXML
    protected void mytbnclick() //(ActionEvent actionEvent)
    {
        System.out.println("clidk");
    }

但是当我点击按钮的时候却不会执行AOP动作。我有点怀疑是不是我搞错代码了,然后再做了一个简单的hello web项目,将NamePointCutAspect和NamePointCut两个类文件复制到web项目中,只不过NamePointCut中切点换成了

@Pointcut(value = "execution(* sayhi(..))")

当浏览器访问页面时调用sahi()方法,可以出现AOP动作。这说明我的AOP代码及配置没有错误,为什么在WEB项目中可以正常执行,但在javaFX项目中不能正确执行呢?

本文由【whoisliang】发布于开源中国,原文链接:https://my.oschina.net/u/2963604/blog/3159944

全部评论: 0

    我有话说: