主页 > 知识库 > Java动态代理实现AOP

Java动态代理实现AOP

热门标签:Mysql连接数设置 科大讯飞语音识别系统 电子围栏 服务器配置 Linux服务器 银行业务 阿里云 团购网站
目前整个开发社区对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应用示例
  • Spring AOP手动实现简单动态代理的代码
  • Spring AOP中的JDK和CGLib动态代理哪个效率更高?
  • AOP从静态代理到动态代理(Emit实现)详解
  • Spring AOP注解失效的坑及JDK动态代理
  • Java JDK动态代理(AOP)的实现原理与使用详析
  • spring基础概念AOP与动态代理理解
  • java使用动态代理来实现AOP(日志记录)的实例代码
  • Aop动态代理和cglib实现代码详解

标签:广元 衢州 蚌埠 衡水 江苏 萍乡 大理 枣庄

巨人网络通讯声明:本文标题《Java动态代理实现AOP》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266