AOP(aspect-oriented programming)一般翻译为 面向方面编程 不过我听起来怎么觉得那么别扭呢,为何不翻译为‘面向部分编程’呢。算了,咱也不是权威,先体验一下再说。
基本概念一大堆,我也没多大高度,最直接的认识,是这东西可以“截获 ”java代码中的部分(如一个方法),在编译的时候,插入外部代码。
在编程的时候,常常遇到这样的情况:不同类中的不同方法都可能调用同一个公共方法。在OOP中,这是没法统计的,不知道有多少个类,是哪些类对这个方法进行了调用(除非专门编写参数来进行统计,但这也只能在运行期间知道,统计是不完整的);同时,这种重复调用的代码,是无法重用的,这让人感觉很不爽。的确,OOP似乎有一些空档,也许AOP能够解决这问题。我今天刚试了一把,就来这里发表一通,如有不对,还望批评指正。我看了几篇安装,要手工创建目录和bat文件,比较麻烦,也许是版本不同吧,我自己摸索的安装非常简单。闲话少说,咱一步步来做。
1.安装:
AspectJ目前最新版本下载
http://download.eclipse.org/technology/ajdt/dev/aspectj-DEVELOPMENT.jar
下载之后,比如保存到d:/download/java/aspectj,进入该目录,在命令行输入java -jar aspectj-DEVELOPMENT.jar 就会出现一个图形安装界面(本来想加图的,但这里Upload的时候老是There was an error),然后next,选择jdk目录,选择安装目录,下一步下一步就完成了安装,比如安装到c:/aspectj1.5
2.配置:将C:/aspectj1.5/lib/aspectjrt.jar;加入CLASSPATH,并把C:/aspectj1.5/bin加入PATH
3.实例:进入C:/aspectj1.5/doc/examples,在命令行键入ajc -sourceroots bean,表示编译bean下的所有文件。
编译完成后执行java bean.Demo,结果如下:
p1 =(0, 0)
Property x changed from 0.0 to 5.0
Property y changed from 0.0 to 2.0
p1 =(5, 2)
Property x changed from 5.0 to 6.0
Property y changed from 2.0 to 3.0
p1 =(6, 3)
Property x changed from 6.0 to 12.0
Property y changed from 3.0 to 7.0
p1 =(12, 7)
Writing to file: (12, 7)
Reading from file: test.tmp
Had: (12, 7)
Got: (12, 7)
怎么样,简单吧。
具体的代码分析,将在下篇给出。
相关文章链接
http://www.jdon.com/AOPdesign/jdon-aop.htm
http://id1909.my.u2i.net/
http://dev.youkuaiyun.com/develop/article/19/19881.shtm
http://www-900.ibm.com/developerWorks/cn/java/j-aopsc2/index.shtml
基本概念一大堆,我也没多大高度,最直接的认识,是这东西可以“截获 ”java代码中的部分(如一个方法),在编译的时候,插入外部代码。
在编程的时候,常常遇到这样的情况:不同类中的不同方法都可能调用同一个公共方法。在OOP中,这是没法统计的,不知道有多少个类,是哪些类对这个方法进行了调用(除非专门编写参数来进行统计,但这也只能在运行期间知道,统计是不完整的);同时,这种重复调用的代码,是无法重用的,这让人感觉很不爽。的确,OOP似乎有一些空档,也许AOP能够解决这问题。我今天刚试了一把,就来这里发表一通,如有不对,还望批评指正。我看了几篇安装,要手工创建目录和bat文件,比较麻烦,也许是版本不同吧,我自己摸索的安装非常简单。闲话少说,咱一步步来做。
1.安装:
AspectJ目前最新版本下载
http://download.eclipse.org/technology/ajdt/dev/aspectj-DEVELOPMENT.jar
下载之后,比如保存到d:/download/java/aspectj,进入该目录,在命令行输入java -jar aspectj-DEVELOPMENT.jar 就会出现一个图形安装界面(本来想加图的,但这里Upload的时候老是There was an error),然后next,选择jdk目录,选择安装目录,下一步下一步就完成了安装,比如安装到c:/aspectj1.5
2.配置:将C:/aspectj1.5/lib/aspectjrt.jar;加入CLASSPATH,并把C:/aspectj1.5/bin加入PATH
3.实例:进入C:/aspectj1.5/doc/examples,在命令行键入ajc -sourceroots bean,表示编译bean下的所有文件。
编译完成后执行java bean.Demo,结果如下:
p1 =(0, 0)
Property x changed from 0.0 to 5.0
Property y changed from 0.0 to 2.0
p1 =(5, 2)
Property x changed from 5.0 to 6.0
Property y changed from 2.0 to 3.0
p1 =(6, 3)
Property x changed from 6.0 to 12.0
Property y changed from 3.0 to 7.0
p1 =(12, 7)
Writing to file: (12, 7)
Reading from file: test.tmp
Had: (12, 7)
Got: (12, 7)
怎么样,简单吧。
具体的代码分析,将在下篇给出。
相关文章链接
http://www.jdon.com/AOPdesign/jdon-aop.htm
http://id1909.my.u2i.net/
http://dev.youkuaiyun.com/develop/article/19/19881.shtm
http://www-900.ibm.com/developerWorks/cn/java/j-aopsc2/index.shtml
本文介绍了Java中AOP(面向方面编程),它可在编译时截获Java代码部分并插入外部代码,能解决OOP中重复调用代码无法重用等问题。还详细说明了AspectJ的安装、配置过程,给出了编译bean下文件的实例,具体代码分析将在下篇给出。
1200

被折叠的 条评论
为什么被折叠?



