0

私のSpringコントローラーでは、サービスからアイテムのリストを受け取り、コントローラー内でカスタムコードを使用して、サービスから返されたリストのサブセットである新しいフィルタリングされたリストを作成しています。

このフィルタリング コードをコントローラーで実行する必要はないと思いますか?

これが私のコントローラーです:

    @Controller
    public class MyController {
    @Autowired
    private MyService myService;

        @RenderMapping
        public String getValues(ModelMap modelMap){

            List<String> = myService.getNewValues();


            List<String> filteredList = ......
            /**
                Code here to process the List and convert it to
                specific List
            */
            modelMap.addAttribute("values", filteredList);
        }
}

フィルタリングはサービス実装層で行うべきですか?

myService.getNewValues();したがって、結果をフィルタリングする新しいメソッドを使用する代わりに: myService.getNewFilteredValues();?

注 : メソッドmyService.getNewFilteredValues()は新しいメソッドになり、で指定されたフィルタリング コードと同じコードが含まれます。MyController

4

2 に答える 2

0

個人的にはmyService.getValues();、サービスがフィルタリングやその他のロジックを呼び出し元から公開して非表示にできるようにします。

于 2013-02-08T11:52:55.633 に答える
0

フィルタリングがビジネス ロジックの一部である場合は、サービス レベルに配置します。getFilteredValues()tunr で呼び出すService にメソッドを追加します。getValues()

UPD:コントローラー固有のロジック(転送されるデータの量を減らすための技術的なフィルタリングなど)の場合は、コントローラーのレベルのままにします。

于 2013-02-08T12:57:03.570 に答える