AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 – 百度百科
面向切面编程,听起来很高端。
既然要写和Java有关的项目,果断放弃Eclipse选择IntelliJ IDEA(以下简称IDEA)作为IDE。
环境
创建项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <?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>com.huntdreams</groupId> <artifactId>aspectj</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.6.7</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.3</version> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> </plugins> </build> </project>
|
- 菜单栏里选择
View
-> Tool Windows
-> Maven Projects
, 在右侧的面板中点击刷新按钮。如图所示,左侧面板的 External Libraries
下出现了3个 Maven
开头的目录,则导入成功。
编写demo
- 检查Sources目录。如图
Java目录
为蓝色,则该目录为Sources目录,之后写的文件都存放在该目录下。
- 在
java目录
下创建 Java Class
文件 com.aspectj.demo.test.HelloWorld
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12
| package com.aspectj.demo.test;
public class HelloWorld {
public static void main(String[] args) {
}
}
|
- 在
java目录
下创建 Aspect
文件 com.aspectj.demo.aspect.HelloAspect
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12
| package com.aspectj.demo.aspect;
public aspect HelloAspect {
pointcut HelloWorldPointCut() : execution(* com.aspectj.demo.test.HelloWorld.main(..));
before() : HelloWorldPointCut(){ System.out.println("Hello world"); } }
|
Run
整个项目,如果控制台出现 Hello world
,那恭喜你成功啦。