Grundsätzlich habe ich eine normale Java-App, mit einem Haupt. Ich benutze Intelij Ultimate. Ich habe folgendes pomKann meinen Aspekt nicht ausführen
<?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>
Also ich habe auch eine LoggingAspect, die ich einfach nicht herausfinden, wie man läuft. Ich versuchte das auch http://confluence.jetbrains.com/display/~roman.shevchenko/AspectJ+Support+Plugin
Und manuell heruntergeladen das Glas, aber ich habe auch heruntergeladen die Intelij Plugins für Aspects. Wie AspectJ Support und Spring Aspect.
Mein Aspekt Klasse sieht wie folgt aus:
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());
}
}
Wie Sie sehen können. Ich möchte die java.util.logging.Logger
verwenden und ich habe eine logging.properties-Datei, wo ich die Ausgabedatei eingerichtet. Ich habe versucht, die App wie in dem Link, den ich oben eingefügt habe, zu kompilieren und die App normal laufen zu lassen, nichts scheint zu funktionieren. Mein Aspekt funktioniert überhaupt nicht/es wird nicht benutzt. Irgendein Rat? Fehle ich etwas?
Ich möchte Spring Aspekt mit Anmerkungen noch nicht verwenden. Ich kann nicht herausfinden, wie man das zuerst funktioniert
Ich änderte meinen Compiler zu AJC und testete die Verbindung, alles ist in Ordnung. Ich habe Aspectjrt zu Abhängigkeiten hinzugefügt ... es tut immer noch nichts, wenn ich versuche, das Programm auszuführen. Es läuft nur normal, ohne die Aspekte anzuwenden. Irgendwelche Ideen?
Haben Sie compile- oder Ladezeit Weben verwendet werden soll? Meine Antwort hängt von dir ab. Und noch eine kurze Frage zur Bestätigung: AspectJ ist ein neues Thema für Sie, nehme ich an? – kriegaex
Ja, es ist ein neues Thema und ich kann keine guten Materialien finden, um es zu lesen. Ich möchte mein Programm ausführen und die Protokolle in der Datei abrufen, während ich die App ausführe. Ich nehme an, ich möchte die Ladezeit richtig weben? – Mocktheduck
Es gibt eine Menge gutes Material da draußen. Beginnen Sie mit der [AspectJ Dokumentation] (https://eclipse.org/aspectj/docs).php) und, wenn Sie vorhaben, Maven zu verwenden, um Ihr Produkt durch Compile-Time Weben zu bauen, die [AspectJ Maven Plugin Dokumentation] (http://www.mojohaus.org/aspectj-maven-plugin/). Da Sie sich unsicher sind, empfehle ich CTW, nicht LTW. Wenn Sie einverstanden sind, kann ich Ihnen ein Beispiel Maven POM zur Verfügung stellen, um Ihren Beispielcode zu erhalten. – kriegaex