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 の目標の 1 つは、Guice を隠すのではなく、Guice に強く依存することです。

標準的な方法は、実行がトレースされるメソッドの @Traced や @Transactional などのアノテーションを使用することです。sitebricks-persist を使用する場合、後者のアノテーションは無料で提供されます。

だんじ。

于 2013-06-13T22:33:56.890 に答える