【问题标题】:Logging for domain objects using aspects (compile time weaving)使用方面记录域对象(编译时编织)
【发布时间】:2015-12-24 00:32:13
【问题描述】:

我想使用aspects 将日志记录代码与我的域逻辑分开。但是那些aspects 应该做编译时编织而不是制作代理对象。

除了AspectJ,还有哪些选项?

【问题讨论】:

    标签: java aspectj compile-time-weaving


    【解决方案1】:

    嗯,另一种处理横向问题的方法,如日志记录,是使用命令模式。这样,您可以使用 ServiceDelegate 来控制所有命令运行,并在此控制每个横向关注点。

    例如,每个命令都必须继承自定义runCommand 方法的抽象类。然后调用ServiceDelegate 以这种方式运行命令:

    //take control of pre conditions
    if(command.isAuthEnabled)
       //do what you want
    
    command.runComman();
    
    //take control of post conditions
    if(command.isLogEnabled())
       //do what you want
    

    也许这听起来很奇怪,但它是使用方面的替代方法。它不是更好或更坏,它是不同的,它将是方面更适合的场景,而其他地方的命令会很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 2013-06-23
      • 2012-11-02
      • 1970-01-01
      相关资源
      最近更新 更多