Java动态代理实现AOP

所属分类: 网络编程 / JSP编程 阅读数: 976
收藏 0 赞 0 分享
目前整个开发社区对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中。
更多精彩内容其他人还在看

table中点击表头实现排序的功能示例介绍

获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列
收藏 0 赞 0 分享

jsp防止跨域提交数据的具体实现

这篇文章主要介绍了jsp防止跨域提交数据的具体实现,需要的朋友可以参考下
收藏 0 赞 0 分享

解决jsp页面使用网络路径访问图片的乱码问题

这篇文章主要介绍了jsp页面使用网络路径访问图片的乱码问题的解决方法 ,需要的朋友可以参考下
收藏 0 赞 0 分享

在jsp页面如何获得url参数

这篇文章主要介绍了在jsp页面获得url参数的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

几种防止表单重复提交的方法

表单重复提交是在多用户Web应用中最常见的一个问题,很多场合都会遇到这种情况,下面与大家分享下防止表单重复提交的几种策略
收藏 0 赞 0 分享

struts2集成javamail发邮件示例详解

这篇文章主要介绍了struts2集成javamail发邮件示例,需要的朋友可以参考下
收藏 0 赞 0 分享

不让tomcat显示目录文件列表的配置方法

这篇文章主要介绍了不让tomcat显示目录文件列表的配置方法,这里需要修改conf/web.xml文件,需要的朋友可以参考下
收藏 0 赞 0 分享

jsp使用cookie存储中文示例分享

这篇文章主要介绍了jsp使用cookie存储中文示例,需要的朋友可以参考下
收藏 0 赞 0 分享

jsp中include指令静态导入和动态导入的区别详解

这篇文章主要介绍了jsp中include指令静态导入和动态导入的区别,通过示例和图文讲解可以更好的看出他们的区别,需要的朋友可以参考下
收藏 0 赞 0 分享

jsp中文显示问号问题解决方法

jsp中想要输出的中文被显示成问号?在eclipse-windows- preferences中搜索jsp,Encoding选项中选择 Chinese,此问题便可解决
收藏 0 赞 0 分享
查看更多