AOP之Aspectj案例
来源:互联网 发布:网络招聘平台有哪些 编辑:程序博客网 时间:2024/06/05 20:43
1.什么是Aspectj
Aspectj是一个基于java语言的AOP(面向切面编程)框架,是spring的基础,它提供了很多AOP(面向切面编程)功能(例如我们接下来要试验的:在正常的java运行类中添加新功能),所以我们要学习Spring就要学习Aspectj
其实Aspecyj并不是一个java语言,它是一个切面语言,例如在定义的时候 public aspect test() ,等等拥有着与java不同的关键字,因此解析Aspect就需要与java不同的平台.这就涉及到了系统的环境配置了.
2.下载Aspectj
官网下载地址:http://www.eclipse.org/aspectj/downloads.php#stable_release
然后选择下图红色圈圈位置的jar包
2.1接下来我和你们说下安装步骤:
第一步:把它下载下来后,在cmd(控制后台)输入:java -jar aspectj-1.8.9.jar(因为他是java的补充,所以aspect命令也可以看做是一个加强版的javac)就可以进入安装页面.如下图所示
第二步:按next之后进入两个页面,一个问你:aspectj的家放在哪里? 一个问你aspect的Bin放在哪里?
我统统将他们放到我经常使用的E:盘中,如下图:
注:上图的地址是一开始系统默认aspect家的地址,我把它改成E:\Aspectj\
第三步:它提示你安装成功,然后叫你按提示,把classpath和path的值给设置了(至于什么是classpath和path?有不懂的java朋友可以看我上一篇转载的文章)
第四步:按它的要求设置classpath和path, 步骤:1.右击我的电脑 2.打开高级系统配置 3.打开环境变量对系统变量进行配置(其中classpath是需要我们自己创建的path是系统已经给我们的)如下图
第五步:Aspectj下载好了,环境也好了,我们开始我们的第一个Aspectj编程(加强java编程功能,在java外围帮java类添加方法)其实这也可以看出Aspectj是java的一个加强工具
写一个普通的java类有sayHello普通方法
public class person{
public void sayHello(){
System.out.println("hello Aspectj!!!");
}
public static void main(String [] args){
person p=new person();
p.sayHello();
}
}
接下来我们写一个Aspect类(一个特殊的java类)
public aspect addsay{
void around():call(void person.sayHello)//观众们看到没有:这里开始指向person.sayHello方法,意思是通过该行代码来插入修改person类(终于知道为什么叫做切面编程了吧,切进去添加方法的编程)
{
System.out.println("开始事务....");
proceed();//proceed英译是继续的意思
System.out.println("事务结束....");
}
}
最后一步:通过cmd 来运行他们
命令:ajc person.java addsay.java
请看下图:
注:在我原先编译one 是普通java类 two是aspectj编程下的java类.
ok!今天的aspect的第一个案例终于讲完了!谢谢大家!如果对大家有所帮助,请大家点个赞!
参考书籍:李刚的<<轻量级javaee企业应用实战>>
- AOP之Aspectj案例
- AOP之使用AspectJ案例
- AOP之基于AspectJ注解总结与案例
- AOP之基于AspectJ注解总结与案例
- AOP之基于AspectJ注解总结与案例
- Java AOP 之 AspectJ
- Java AOP 之 AspectJ
- Spring AOP之AspectJ
- Spring AOP之AspectJ
- AOP之AspectJ
- Aop之AspectJ
- AOP笔记之AspectJ
- Spring Aop入门之Aspectj
- AOP技术学习之AspectJ
- AOP之AspectJ技术总汇
- AOP架构之路-AspectJ
- Spring aop之使用AspectJ
- Spring AOP之增强(aspectj)
- 往数据库里添加date(时间)类型的数据
- java-抛异常和捕获异常
- 12个最应该使用的Linux服务器OS(中)
- 算法导论——最长公共子序列
- java中实现类似函数指针的功能
- AOP之Aspectj案例
- 关于QR二维码
- 中介者模式(24)
- ios--浅谈CoreData+源代码
- final关键字详解
- ZOJ 3327Friend Number
- 机器学习笔记(四)Logistic回归
- 编程学习笔记之Java相关vector向量的介绍
- Android Studio 之一个项目的不同视图结构