0

このアプリでは、次のレイヤーが使用されています。

Rest Service Endpoint Layer --> Business Layer --> DAO --> ORM

これで、各レイヤーは例外を適切に変換し、次のレイヤーに送信します。たとえば、DAO Layerを作成してDaoExceptionにスローしBusiness LayerBussiness Layerこれを に変換して cxf マッパーによって処理される場所にBusinessExceptionスローしRestService Layerます (実際には RestServiceLayer ではありません)。

@Transactionalのメソッドを実装しましたBusiness Layer。そのため、コミット時に例外が発生した場合、exceptionは最初に でのみ表示されますRest Service Endpoint Layer。ここで、最上位レイヤー ( ) でトランザクション コミット関連の例外 (例: ) をチェックする必要があります。RollBackException etc.これRest Service Endpoint Layer、次のレイヤーの例外を変換する各レイヤーの目的を無効にする可能性があります。

この状況に対処するにはどうすればよいでしょうか。例外をまったく変換せず、それらすべてを最上位レイヤーでのみ処理する必要がありますか?

4

1 に答える 1

0

スローされた例外にアノテーション駆動型のAOPポイントカットを記述し、本当にアノテーションを変換してビジネスレイヤーに適用する場合は、それを変換します。しかし、私は翻訳しないこともお勧めします-あなたは翻訳をすることによって何を得ていますか?

于 2013-02-01T19:23:46.040 に答える