Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Java Spring框架和AspectJ_Java_Spring_Aop_Aspectj_Spring Aop - Fatal编程技术网

Java Spring框架和AspectJ

Java Spring框架和AspectJ,java,spring,aop,aspectj,spring-aop,Java,Spring,Aop,Aspectj,Spring Aop,我目前正在开发一个RESTAPI,它将使用Spring框架。我的团队正在考虑使用一些AOP来维护交叉关注点 我在SpringAOP方面取得了成功,但后来意识到它可能不够强大,无法处理我想做的事情 我一直试图将AspectJ集成到我们的Spring应用程序中,但收效甚微。spring文档似乎没有完全充实,Google搜索也很困难,因为文章经常混淆spring AOP和集成在spring中的AspectJ 我想知道是否有一些在Spring框架中使用AspectJ的技巧、指针或演练 我试图解决的问题是

我目前正在开发一个RESTAPI,它将使用Spring框架。我的团队正在考虑使用一些AOP来维护交叉关注点

我在SpringAOP方面取得了成功,但后来意识到它可能不够强大,无法处理我想做的事情

我一直试图将AspectJ集成到我们的Spring应用程序中,但收效甚微。spring文档似乎没有完全充实,Google搜索也很困难,因为文章经常混淆spring AOP和集成在spring中的AspectJ

我想知道是否有一些在Spring框架中使用AspectJ的技巧、指针或演练

我试图解决的问题是,当调用另一个setter时,我想在类上设置一个变量。SpringAOP无法做到这一点,因为它是基于代理的,只能代理它控制的bean。我调用的setter是模型类,不会由Spring处理

我已决定切换到aspectj maven编译插件,但在启用verbose时出现以下错误:

“无法为此建议惰性地构建此JoinPoint,因为它没有合适的防护[Xlint:noGuardForLazyTjp]”

这是我现在的样子

public aspect SkynetServiceAspect1 {


@Before("execution(* com.company.application.service.ServiceImpl..*(..))")
public void loggingLoggerGuy(JoinPoint jp) {
    Object[] oArray = jp.getArgs();
    System.out.println("***************************************************************************************************************");
    System.out.println("I am this method: "+  jp.getSignature().getName() + "with the following arguments" + oArray.toString()+"!");

}
}

这是我在运行maven clean安装时收到的错误

 [INFO] Showing AJC message detail for messages of types: [error, warning, fail]
[WARNING] can not build thisJoinPoint lazily for this advice since it has no suitable guard [Xlint:noGuardForLazyTjp]
        C:\workspaces\Newport-1\OAuthPOCAOP\target\classes!com\company\application\aspect\SkynetServiceAspect1.class:18

[WARNING] advice defined in com.company.application.aspect.SkynetServiceAspect1 has not been applied [Xlint:adviceDidNotMatch]
        C:\workspaces\Newport-1\OAuthPOCAOP\target\classes!com\company\application\aspect\SkynetServiceAspect1.class:18

任何帮助都将不胜感激,谢谢

您计划使用什么,编译时编织还是加载时编织?我的目标是尽可能尝试使用加载时编织。我的web应用程序正在tomcat服务器上运行。曾经有一个名为“TomcatInstrumentableClassLoader”的自定义类加载器,但我了解到,如果您使用的是我的应用程序将在其上运行的Tomcat 8,则不需要这个类加载器。我已切换到使用aspectj maven插件的编译时编织。我似乎更进一步了,但我现在对我的方面的实际编织有一个问题。你需要用你得到错误的方面更新你的帖子。顺便说一句,这是一个终端错误吗?或者只是一些警告?添加了我的方面和我在尝试maven clean安装时遇到的错误您打算使用什么,编译时编织还是加载时编织?我的目标是尽可能尝试使用加载时编织。我的web应用程序正在tomcat服务器上运行。曾经有一个名为“TomcatInstrumentableClassLoader”的自定义类加载器,但我了解到,如果您使用的是我的应用程序将在其上运行的Tomcat 8,则不需要这个类加载器。我已切换到使用aspectj maven插件的编译时编织。我似乎更进一步了,但我现在对我的方面的实际编织有一个问题。你需要用你得到错误的方面更新你的帖子。顺便说一句,这是一个终端错误吗?或者只是一些警告?添加了我的方面和我在尝试maven clean安装时遇到的错误