我无法让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行,但我看到的与时间无关。