基本上我有一個普通的Java應用程序,與主。我使用Intelij Ultimate。我有以下朋友不能讓我的方面運行
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>88</groupId>
<artifactId>SpaceX</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/postgresql/postgresql -->
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/aspectj/aspectjrt -->
<dependency>
<groupId>aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
所以我也有一個LoggingAspect,我只是不知道如何運行。我也試過這個http://confluence.jetbrains.com/display/~roman.shevchenko/AspectJ+Support+Plugin
手動下載了jar,但我也下載了方面的Intelij插件。像AspectJ支持和Spring方面一樣。
我的切面類看起來是這樣的:
public aspect LoggingAspect {
pointcut tracing():call(public * com.company..*.*(..)) && !within(LoggingAspect);
private Logger logger= Logger.getLogger("com.company");
public LoggingAspect() {
PropertyConfigurator.configure("logging.properties");
}
before(): tracing(){
logger.info("Entering: "+ thisJoinPointStaticPart.getSignature());
}
after():tracing(){
logger.info("Exiting: "+ thisJoinPointStaticPart.getSignature());
}
}
正如你所看到的。我想使用java.util.logging.Logger
,我有一個logging.properties文件,我在其中設置輸出文件。我嘗試編譯應用程序,就像上面粘貼的鏈接,正常運行應用程序,似乎沒有任何工作。我的方面根本沒有工作/沒有被使用。有什麼建議?我錯過了什麼嗎?
我不想用註釋尚未使用Spring Aspect。我不知道如何使這一個第一個工作
我改變了我的編譯器爲ajc和測試連接,一切都很好。我已經將Aspectjrt添加到依賴關係中......當我嘗試運行該程序時,它仍然不會執行任何操作。它只是正常運行而不應用這些方面。 任何想法?
你想編譯期使用或加載時織入?我的答案取決於你的。另一個需要驗證的問題是:AspectJ對你來說是一個新話題,我認爲? – kriegaex
是的,這是一個新的話題,我找不到任何好的材料來閱讀。我想運行我的程序,並在運行應用程序時獲取文件中的日誌。我假設我想要加載時織入正確的? – Mocktheduck
那裏有很多很好的材料。爲什麼不從[AspectJ文檔]開始(https://eclipse.org/aspectj/docs。PHP),如果你打算使用Maven通過編譯時織建立你的產品,[AspectJ的Maven插件文件(http://www.mojohaus.org/aspectj-maven-plugin/)。由於您似乎不確定,我推薦CTW,而不是LTW。如果您同意,我可以提供一個示例Maven POM以便讓您的示例代碼正常運行。 – kriegaex