• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Java动态代理实现AOP
    目前整个开发社区对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实现代码详解
    上一篇:Hibernate包作用详解
    下一篇:J2SE1.5 注释语法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Java动态代理实现AOP Java,动态,代理,实现,AOP,