2016-09-29 3 views
4

アーキテクチャを階層化している場合(Guides、DAO、Services、Controllers)のGuiceの設定方法は?Guiceの設定/バインドのベストプラクティス

これは最上位層(コントローラ)で設定する必要がありますか?または、各レイヤーで構成する必要がありますか?もしそうなら、どのように一緒にそれらを手掛かりにする?

テストはどうですか?それがどうあるべきか?おかげさまで

+0

私は個人的に機能別に設定します。なぜなら、同じ場所に機能全体を持たせる方が効率的だからです。パッケージは明示的であり、モジュールは設定が簡単です。これは "層"についての考えを止めることを必要とする。ブックパッケージがあります。たとえば、 'BookService'、' BookDao'、 'BookController'だけでなく、あなたのエンティティ' Book'をそこに置くことができます。すべてを束縛するためには、あなたの 'BookModule'もそのパッケージに入れます。あなたの質問に答えるために、フィーチャベースのレイアウトをリファクタリングして、各パッケージにModuleを配置します。 –

答えて

0

一般的なプラクティスによれば、 DAOは可能な限り軽く、DBに接続するために存在します。

サービス層は、DAOとクライアントとの間で送受信されるデータを処理するロジックを提供します。

非常に多くの場合、これらは同じモジュールにバンドルされますが、時には同じコードにバンドルされますが、依然として別個の論理エンティティとして表示されます。

対応するGuiceモジュールに必要なサービスをバインドしてコントローラに注入し、DAOをインジェクションからサービス実装レイヤに提供する方がよいでしょう。

テストアプローチによれば、サービスがDAOとクライアント間で送受信されるデータを操作するロジック以外の機能を実行しない場合、各DAOはサーバー側で個別にテストする必要があります。

関連する問題