AspectJ + Perf4J + Spring和@Profiled注释?

时间:2017-03-20 23:06:39

标签: spring aspectj spring-aop perf4j

我无法让AspectJ完全工作,并且在完成10个不同的教程之后我已经用尽了想法。

这是我想要做的......

我有一个Spring应用程序。它使用Spring,Perf4J和Now Aspect(如果它有效!)我想在我的公共方法的tog中使用@Profiled(“some tag here”)。就是这样,没什么太花哨的。

以下是我尝试运行的代码:

@Override
@Profiled(tag = "MainClass" + ".runMethod", logFailuresSeparately = true)
public Collection<Throwable> runMethod() throws Exception {

    System.out.println("Running a simple method that I want timings for.");

}

以下是我在maven中使用的POM依赖项,以便设置所有内容。

<dependencies>
    <!-- Spring (includes spring-aop)-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- AspectJ (required spring-aop dependency) -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.5</version>
    </dependency>
    <!-- LOG -->
    <dependency>
        <groupId>org.perf4j</groupId>
        <artifactId>perf4j</artifactId>
        <version>${perf4j.version}</version>
    </dependency>
</dependencies>

这是aspect beans文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:aop="http://www.springframework.org/schema/aop"

   xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

<aop:aspectj-autoproxy proxy-target-class="true">
    <aop:include name="timingAspect"/>
</aop:aspectj-autoproxy>

<!--<context:load-time-weaver/> -->

<!--  The perf4j aspect -->
<bean id="timingAspect" class="org.perf4j.log4j.aop.TimingAspect"/>

以下是我如何将该XML bean文件引入(在spring应用程序上下文文件中):

<import resource="aspectBeans.xml" />

现在,应用程序编译,运行,并打印我的System.out.println行,但我看到的与时间无关。

0 个答案:

没有答案