コントローラー自体ではなく、サービス内にCRUDコードを配置することが推奨されるのはなぜですか?
質問する
370 次
2 に答える
1
soc、再利用性、テスト容易性などに加えて、次のより技術的な理由も確認できます。
デフォルトでは、Grails サービスの各メソッドは@Transactional
、トランザクションで暗黙的に (または で明示的に、[0] を参照) ラップされます。(チェックされていない!) 例外が発生するたびに、トランザクションは Spring によって自動的にロールバックされます。
CRUD コードは複数のドメイン オブジェクトで構成される集合体を変更することが多いため、このコードを「トランザクション スクリプト」[1] サービス メソッドに移動して、Grails/Spring がトランザクション処理を管理できるようにすることをお勧めします (再利用性を高めることなどに加えて)。
[0] http://grails.org/doc/latest/guide/services.html
[1] http://martinfowler.com/eaaCatalog/transactionScript.html
于 2012-11-05T08:28:24.217 に答える
0
「CRUDコード」がアプリケーションロジックを意味する場合。
Grails では、
1. 関心の分離
2. 再利用可能 であるため、サービス内のアプリケーション ロジックを作成することをお勧めします。
于 2012-11-05T08:16:49.117 に答える