您的位置:首页 > 编程语言 > ASP

一、AspectJ概论

2017-02-08 14:45 295 查看
1. AspectJ是什么?

AspectJ 是对Java编程语言简单且实用的扩展,它增加了Java面向方面编程(AOP)的能力。AOP允许开发人员 从跨越模块化的自然单元的关注中获得(to reap)模块化的好处。简单的来说,就是AOP允许开发人员,在不改变原有模块的逻辑基础上,增加业务逻辑处理。在像Java这样的面向对象程序中,自然单元模块指的是类。而在AspectJ中,方面可以使(属于某一个类的)影响不止一个类的关注点模块化。

实际开发中,开发者可以使用AspectJ编译器,(提供了一个小的(<100K)运行时库,可能要求使用支持的开发环境)编译程序,然后运行它。

AspectJ技术包括了一个ajc编译器、ajdb调试器、ajdoc文档生成器和ajbrowser程序结构浏览器,同时内置与Eclipse、Sun-ONE/Netbeans、GUN Emacs/XEmacs、JBuilds和Ant中。

2. 使用AspectJ益处有哪些?

AspectJ 可以用来改善软件系统的模块化。使用简单的Java类,很难模块化设计下面这样的问题(concerns):

- 系统级错误处理

- 合约执行

- 分布问题

- 特征变化

- 上下文敏感行为

- 持久化

- 测试

这些问题的代码往往在整个系统中分散开来。因为这些问题不会留在任何一个模块边界内,可以说 这些问题横切了系统的模块性。AspectJ向Java添加了构造,使得能够模块化的实现横切关注点(横切问题)。这个能力是格外有价值的,因为横切关注点往往是复杂的和很少小范围的,这样使得很难去处理他们。

注: crosscutting concerns 翻译成横切关注点,这样翻译应该是大多数的,我个人觉得这里的concerns 翻译成“问题”应该更通俗和容易理解点。

3. AspectJ可以使用任何Java程序吗?

AspectJ被设计为Java的兼容扩展。通过兼容,意味着可以:

a、向上兼容,所有合法的Java程序都是合法的AspectJ程序;

b、平台兼容,所有合法的AspectJ程序都可以运行在标准的Java虚拟机中。

c、工具兼容,现有工具可扩展为与AspectJ一起使用。

d、开发者兼容,在AspectJ中的编程对于Java程序员来说很自然。

AspectJ 提供的工具可以运行在任何与Java2相兼容的平台上。AspectJ编译器编译的class文件可以运行在任何与Java 1.1所兼容的平台上。

4. AspectJ如何得到认可的?

从AspectJ 1.5.2 开始,其源代码和文档在 Eclipse Public License 1.0都是可以获取的。

AspectJ 1.1版本到1.5.1版本,其源代码和文档在 Common Public License 1.0 也都是可以获得的。

AspectJ 1.0 工具是根据Mozilla Public License 1.1提供的开源软件。该文档可在单独的许可证使用,以排除盈利或者商业重新分配。

其运行时jar包—aspectjrt.jar和其他工具也包含在Eclipse Public Licence(Eclipse公共许可证)中。

对于公共许可相关的问题可参考Eclipse公共许可常见问题

5. 什么是AspectJ项目?

AspectJ基于Xerox Palo Alto研究中心的十多年的研究,由美国政府资助(NISTATP),以及DARPA协作。它通过一个开源软件版本发展到拥有强大的用户社区,现在作为http://eclipse.org/aspectj 一个开源项目。AspectJ团队与社区紧密合作,以确保AspectJ继续发展成为一种有效的面向方面编程语言和工具集。

其最新版本是1.2(注意:貌似该文档很久都没更新了,现在最新版本是1.8.。。。)可以从AspectJ项目页面获取到,包括来源描述 即,如何获取和编译AspectJ的源代码?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  AspectJ入门