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

Spring原生AspectJ的问题

法和硕
2023-03-14

我正在用Spring 4测试AspectJ编译时编织(一旦我让它工作起来,我想在我的项目中使用它)。我的服务级别如下:

@Service
public class HelloService {

    public String sayHello(){       
        return sayHello2();
    }

    public String sayHello2(){
        return "Hello from AOP2!";
    }
}

以下是我对AspectJ的建议:

@Component
@Aspect
public class ExecutionTimeAdvice {

    @Around("execution(* com.senyume.aop.service..*(..))")
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {

        long startTime = System.nanoTime();
        Object retVal = pjp.proceed();
        long endTime = System.nanoTime();

        long duration = (endTime - startTime);

        logger.info("Method " + pjp.getSignature() + " took " + (duration/1000000.0) + " ms)");

        return retVal;
    }
}

我正试图根据Spring文档启用AspectJ编译时编织。因为我使用的是注释,所以我试图遵循本文中提到的建议。

当我运行应用程序时,我没有看到建议被应用到sayHello2()。我错过了什么?我做错了什么?

github上的完整源代码

共有1个答案

周宏伯
2023-03-14

Gradle构建使用Java编译器来构建项目。实际使用AspectJ编译器怎么样?如果您想使用AspectJ,这将非常有帮助<代码>;-)

您可以使用Gradle AspectJ插件。

 类似资料:
  • AspectJ意味着它的另一个AOP实现不是基于spring的,如果我们想使用它,那么除了spring之外,我们还需要包括一些第三方JAR。 Spring AOP注释意味着Spring使用AspectJ注释来提供AOP特性。 这些假设公平吗?

  • 本文向大家介绍Spring AspectJ AOP框架注解原理解析,包括了Spring AspectJ AOP框架注解原理解析的使用技巧和注意事项,需要的朋友参考一下 什么是AspectJ AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 AspectJ是一个基于Java语言的AOP框

  • 我试图在Spring3.1.5上用AOP实现日志记录。但在运行时,我会得到以下异常 下面是我的aspect类的详细信息: 伙计们,我真的被这个困住了,我也是Aop的新手,请帮我解决这个问题!!!

  • 我很难在Spring MVC项目中使用方面。 作为切入点的方法运行良好,但没有Advise。 下面是启动整个Spring Boot的类,它是spring上下文的根: 下面是带方法的类,即切入点。 下面是我的方面: 编辑2:IntelliJ IDEA告诉我有关方法login和login2:“这个建议没有方法”,但同时,我能够从字符串跳转(通过控制单击),这是批注中的价值,以纠正实现。

  • 假设我有一个spring boot应用程序 我的方面J类 我希望这方面在Spring启动之前准备好。这可能是我想做的吗?这方面没有被截获的原因,我不知道。 聚甲醛 我没有使用spring boot starter aop。以上是我对aop的所有配置和代码。

  • 问题内容: 我的印象是,Spring AOP最适合用于特定于应用程序的任务,例如安全性,日志记录,事务处理等,因为它使用自定义Java5注释作为框架。但是,AspectJ似乎是更友好的设计模式。 谁能强调在Spring应用程序中使用Spring AOP和AspectJ的利弊吗? 问题答案: Spring-AOP优点 它比AspectJ更易于使用,因为你不必使用LTW(加载时编织)或AspectJ编