Java 在Maven上使用不带Spring的AspectJ
我还是Java的初学者。我想构建一个简单的Maven项目并实现AspectJ来监控一些东西。我遵循了这个和这个,但所有的要点都是在Maven中使用Spring,这将使项目中的一些内容复杂化。你对解决这个问题有什么建议吗?我已经在pom.xml中添加了AspectJ Maven插件,但它不起作用 谢谢 这些是我想得到的示例代码 MainApp.javaJava 在Maven上使用不带Spring的AspectJ,java,spring,maven,aspectj,aspectj-maven-plugin,Java,Spring,Maven,Aspectj,Aspectj Maven Plugin,我还是Java的初学者。我想构建一个简单的Maven项目并实现AspectJ来监控一些东西。我遵循了这个和这个,但所有的要点都是在Maven中使用Spring,这将使项目中的一些内容复杂化。你对解决这个问题有什么建议吗?我已经在pom.xml中添加了AspectJ Maven插件,但它不起作用 谢谢 这些是我想得到的示例代码 MainApp.java package tester; public class MainApp { public static void main(Stri
package tester;
public class MainApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
HelloWorld a = new HelloWorld();
a.printHello();
}
}
HelloWorld.java
package tester;
public class HelloWorld {
private String name;
public void setName(String name) {
this.name = name;
}
public void printHello() {
System.out.println("Spring 3 : Hello ! " + name);
}}
TestAspect.java
package tester;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Around;
@Aspect
public class TestAspect {
// @Pointcut("execution(* /HelloSpring/src/main/java/tester/HelloWorld.setName(..))")
// private void testing(){
//
// }
@Before("execution(* tester.HelloWorld.printHello(..))")
public void testBefore2(){
System.out.println("yoo2");
}
@Before("execution(* tester.HelloWorld.setName(String))")
public void testBefore(){
System.out.println("yoo");
}
}
pom.xml
<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>test.spring</groupId>
<artifactId>HelloSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<spring.version>4.2.5.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring 3 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.7</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.8</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
测试弹簧
胡说八道
0.0.1-快照
4.2.5.1发布
org.springframework
弹簧芯
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
春季aop
4.2.5.1发布
org.aspectj
aspectjrt
1.8.7
org.aspectj
aspectjweaver
1.8.8
org.codehaus.mojo
aspectj maven插件
1.8
org.aspectj
aspectjtools
${aspectj.version}
maven编译器插件
${maven.compiler.plugin.version}
${java.version}
${java.version}
这里有一个更适合的pom,对我来说,它可以与当前代码一起工作
<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>test.spring</groupId>
<artifactId>HelloSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<maven.compiler.plugin.version>3.5.1</maven.compiler.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.7</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.8</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
4.0.0
测试弹簧
胡说八道
0.0.1-快照
3.5.1
org.aspectj
aspectjrt
1.8.7
org.aspectj
aspectjweaver
1.8.8
org.codehaus.mojo
aspectj maven插件
1.8
1.8
1.8
1.8
maven编译器插件
${maven.compiler.plugin.version}
1.8
1.8
您还应该添加“执行”标签:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>${aspectj-maven-plugin.version}</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
org.codehaus.mojo
aspectj maven插件
${aspectj maven plugin.version}
1.8
1.8
1.8
过程源
编译
测试编译
org.apache.maven.plugins
maven编译器插件
${maven.compiler.plugin.version}
1.8
1.8
我尝试使用您的POM配置,但仍然不起作用。你知道为什么吗?您认为我需要使用右键单击-配置-转换为AspectJ项目将普通Maven项目转换为Maven AspectJ项目吗?您使用的是什么IDE?您是否尝试过仅通过mvn clean install通过控制台运行它?我在使用IntelliJ,我在控制台和IntelliJ上都试过了,我可以用我的POM运行你的代码。我在使用Eclipse Mars,没有在控制台上试过,因为它有一些问题。但我已经尝试使用干净的安装参数构建它,但仍然没有捕获AspectJ。