aop aspectj [intellij idea配置] [hello world]

来源:互联网 发布:淘宝的优质网店 编辑:程序博客网 时间:2024/05/18 03:53

实验环境

操作系统:windows
开发工具:intellij idea
编程语言:java


工具准备

intellij idea【必须 Ultimate 】

http://blog.csdn.net/qqduxingzhe/article/details/76971479

aspectj jar包

http://mirror.library.ucy.ac.cy/eclipse/tools/aspectj/aspectj-1.8.10.jar


安装aspectj

前置条件,java jdk环境

双击 aspectj xx.jar ,默认即可


新建java项目,添加aspectj jar包

这里写图片描述


配置编译器 ajc

这里写图片描述


编写代码并运行

helloworld

public class HelloWorld {    public void sayHello(){        System.out.println("hello world");    }    public void saySome(String some){        System.out.println("some=" + some);    }}

aspectjhello

public aspect AspectHello {    pointcut beforeSayXX():            execution(void HelloWorld.say**(..));    before():            beforeSayXX(){        System.out.println("-----------------------------do some ");    }}

client test

public class Client {    public static void main(String[] args){        HelloWorld helloWorld = new HelloWorld();        helloWorld.sayHello();        helloWorld.saySome("ni hao");    }}

这里写图片描述


aspectj 语法

pointcut beforeSayXX():            execution(void HelloWorld.say**(..));

pointcut 定义一个切入点
beforeSayXX 切入点名称

: 后接执行方式(call、execution)
(void ) 要切入的方法的返回值类型
( HelloWorld.say**(..)) 要切入方法的 包名.类名.方法名(参数类型)
( say** ) **指的是通配符,这样可以切入多个方法
( say**(..)) ..指参数类型不限制,任意参数,任意类型,任意参数个数,为的是切入更多方法

=====================

before():            beforeSayXX(){        System.out.println("-----------------------------do some ");    }

before() 声明在切入点方法之前要做的操作

-

: 后接切入点名称


aspectj学习文档

aspectj 专栏
http://blog.csdn.net/column/details/aspectj.html

aspectj cookbook 中文版pdf
https://cn.bing.com/search?q=aspectj+cookbook+%E4%B8%AD%E6%96%87%E7%89%88+pdf

aspectj in action pdf【英文】


intellij aspectj 配置
https://www.jetbrains.com/help/idea/2016.3/aspectj.html


end

原创粉丝点击