0

我正在使用我喜欢的 Sitebricks。但是,我想知道为横切任务拦截服务的最佳方法是什么?日志记录、验证、异常处理,都是像组件一样放在拦截器中的任务。目前,我正在使用 AOP 在服务上执行此操作,如下所示:

bindInterceptor(annotatedWith(Service.class), returns(only(Reply.class)), new HttpRequestFailureReportInterceptor(new MessageAcceptor() {
          @Override
          public void accept(String message) {
            Logger logger = LoggerFactory.getLogger(this.getClass());
            logger.debug(message);
          }
        }));

这是完成此类任务的好方法吗?如果不是,为什么?这种方法的优点和缺点是什么?

4

1 回答 1

1

我们绝对鼓励您使用功能强大且功能齐全的 Guice AOP。Sitebricks 的目标之一不是隐藏 Guice,而是强烈依赖它。

规范的方法是使用诸如 @Traced 之类的注释来跟踪其执行的方法或 @Transactional 等。如果您使用 sitebricks-persist,后一个注释是免费的。

丹吉。

于 2013-06-13T22:33:56.890 回答