IntelliJ IDEA 下开发 AspectJ

Author Avatar
陈高勋 3月 12, 2016
  • 在其它设备中阅读本文章

AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 – 百度百科

面向切面编程,听起来很高端。

既然要写和Java有关的项目,果断放弃Eclipse选择IntelliJ IDEA(以下简称IDEA)作为IDE。

环境

创建项目

  • 打开IDEA新建项目,选择Maven

full-img

  • 填好信息之后,创建项目

  • 在偏好设置里检查Maven环境是否正确,如图所示选择 Maven home directory 为之前配置好的Maven目录

full-img

  • 替换 pom.xml 的内容(感谢韬懿大神)为:
<?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>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!--aspectj-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.7</version>
        </dependency>
        <!-- log4j -->
        <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><!-- to weave all your main classes -->
                            <goal>test-compile</goal><!-- to weave all your test classes -->
                        </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 开头的目录,则导入成功。

full-img

编写demo

  • 检查Sources目录。如图 Java目录 为蓝色,则该目录为Sources目录,之后写的文件都存放在该目录下。

full-img

  • java目录 下创建 Java Class 文件 com.aspectj.demo.test.HelloWorld 内容如下:
package com.aspectj.demo.test;  

public class HelloWorld {  

    /**
     * @param args
     */  
    public static void main(String[] args) {  

    }  

}
  • java目录 下创建 Aspect 文件 com.aspectj.demo.aspect.HelloAspect 内容如下:
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 ,那恭喜你成功啦。