手机
当前位置:查字典教程网 >编程开发 >JSP教程 >Java动态代理实现AOP
Java动态代理实现AOP
摘要:目前整个开发社区对AOP(AspectOrientedPrograming)推崇备至,也涌现出大量支持AOP的优秀Framework,--S...

目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring, JAC, Jboss AOP 等等。AOP似乎一时之间成了潮流。Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本文不是要在理论上具体阐述何为AOP, 为何要进行AOP . 要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示一下如何来进行AOP.

为了简单起见,例子没有没有使用任何第三方的AOP Framework, 而是利用Java语言本身自带的动态代理功能来实现AOP.

让我们先回到AOP本身,AOP主要应用于日志记录,性能统计,安全控制,事务处理等方面。它的主要意图就要将日志记录,性能统计,安全控制等等代码从商业逻辑代码中清楚的划分出来,我们可以把这些行为一个一个单独看作系统所要解决的问题,就是所谓的面向问题的编程(不知将AOP译作面向问题的编程是否欠妥)。通过对这些行为的分离,我们希望可以将它们独立地配置到商业方法中,而要改变这些行为也不需要影响到商业方法代码。

假设系统由一系列的BusinessObject所完成业务逻辑功能,系统要求在每一次业务逻辑处理时要做日志记录。这里我们略去具体的业务逻辑代码。

public interface BusinessInterface {

public void processBusiness();

}

public class BusinessObject implements BusinessInterface {

private Logger logger = Logger.getLogger(this.getClass().getName());

public void processBusiness(){

try {

logger.info("start to processing...");

//business logic here.

System.out.println(“here is business logic”);

logger.info("end processing...");

} catch (Exception e){

logger.info("exception happends...");

//exception handling

}

}

}

这里处理商业逻辑的代码和日志记录代码混合在一起,这给日后的维护带来一定的困难,并且也会造成大量的代码重复。完全相同的log代码将出现在系统的每一个BusinessObject中。

【Java动态代理实现AOP】相关文章:

Java开源项目Hibernate

JSP如何实现文件上传

不用迭代算法而快速实现的jsp树结构

java使用smartupload组件实现文件上传的方法

配置Web应用环境实现JSP留言簿

JSP自定义标签的实现过程

JavaBean技术要点

Java代码编写的一般性指导

java Lucene 中自定义排序的实现

jsp中调用java代码小结

精品推荐
分类导航