繁体   English   中英

Spring Boot方面在我的API中不起作用

[英]Spring Boot aspect doesn't work in my API

我试图为我的Spring Boot API做一个Logging方面,以便每次请求到服务器时,所有内容都记录到一个文件中。 但是,我无法发挥自己的作用。 我究竟做错了什么?

这是方面

@Aspect
@Component
public class Logging {

private Logger log;

@Before("execution(* com.package.TeamController.*(..))")
public void before(JoinPoint joinPoint){
    log = Logger.getLogger(joinPoint.getClass());
    log.info("Starting request " + joinPoint.getSourceLocation());
    if(joinPoint.getArgs()!=null){
        log.info(" Arguments are");
        for(Object obj : joinPoint.getArgs()){
            log.info(obj.getClass().getName() );
        }
    }
}
}

应用程序入口点是

@SpringBootApplication(scanBasePackages =
           {"com.package", "com.aspect"})
@EnableJpaRepositories
public class Application {

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

我的application.properties文件有这一行

spring.aop.auto=true

我究竟做错了什么? 当调用TeamController中的方法时,为何方面不记录日志信息?

注意 团队控制器方法是通过GET请求调用的

NOTE2 Intelij Ide有一个可视化工具,可以导航到建议的方法,当我查找它时,它向我显示了控制器方法,但是该建议仍然无法正常工作

找到了问题。 首次创建文件时,Intelij建议制作一个方面而不是java类,从而制作了Logging.aj文件并创建了

public aspect Logging{}

当我将Aspect关键字重命名为class关键字时,文件仍然是.aj类型。 我将其重命名为.java,现在可以正常使用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM