Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何在AOP中记录所有方法的公共方法调用_Spring Boot_Aop_Aspectj - Fatal编程技术网

Spring boot 如何在AOP中记录所有方法的公共方法调用

Spring boot 如何在AOP中记录所有方法的公共方法调用,spring-boot,aop,aspectj,Spring Boot,Aop,Aspectj,我在记录服务调用时的所有方法时遇到了一些问题。代码如下: package com.myproject.controller; @RestController(/人) 公共类控制器{ 公众人物getpersonInfo(){ ...... getValidPerson(); } } 公众人物getValidPerson(){ isPersonValid(个人); .... } 个人类方法: package com.myproject.dao; 公共类Dao{ 公共布尔值isPersonValid

我在记录服务调用时的所有方法时遇到了一些问题。代码如下:

package com.myproject.controller;
@RestController(/人)
公共类控制器{
公众人物getpersonInfo(){
......
getValidPerson();
}
}
公众人物getValidPerson(){
isPersonValid(个人);
....
}
个人类方法:

package com.myproject.dao;
公共类Dao{
公共布尔值isPersonValid(){
//检查此人是否有效
}
}
方面类:

package com.myproject;
@组成部分
@面貌
公共类日志记录{
@在(“执行(*com.myproject.**(..))之前)
服务调用前的公共无效(Jointpoint jp){
//一些日志功能
}
}
像这样的主课

package com.myproject;
@SpringBoot应用程序
@启用自动配置
@EnableLoadTimeWeaving(aspectjWeaving=EnableLoadTimeWeaving.aspectjWeaving.ENABLED)
@EnableAspectoproxy()
公共类主实现LoadTimeWeavingConfigurer{
公共静态void main(字符串[]args){
......
}
}
Pom文件:


org.springframework
-得到
getpersonInfo()只在这种情况下被记录,我也尝试过
LTW,但不解决问题

我需要将所有内部方法记录到服务中,比如getValidPerson()、isPersonValid(),提及那些被调用方法的所有参数


您忘了提及未记录的内容,但已将其导出到。此外,您的代码片段缺少检查方面是否正确所需的重要信息部分,例如包名、类声明(包括注释)。简短的问题很好,但请不要太短。不过,我已经可以告诉您一件事:您应该对完整AspectJ LTW使用
@enableAloadTimeWeaving
,或者对简单的Spring AOP使用
@EnableAspectJAutoProxy
,但不能两者兼而有之。顺便说一句,Spring AOP无法捕获私有方法,但我在您的代码中没有看到私有方法,所以这无关紧要。我删除了
@EnableAspectJAutoProxy
它不起作用。请阅读我之前的评论并提供所需信息。请在上面找到我编辑的问题,其中提到了软件包,并在问题末尾提到了未记录的方法。如果要包括任何内容,请提及。