1

私はSpringでMVCを使用しているので、コントローラーからいくつかのパラメーターを渡したいのですが、このフィールドは送信フォームから取得します。私の質問は、Beanフォームを介してサービスに送信するか、別のBeanを作成することで、このフィールドを渡す最良の方法です。

    @Autowired
    RegisterServiceImpl registerServiceImpl;

    @RequestMapping(value="/registeruser", method = RequestMethod.POST )
    public String register( @ModelAttribute(value = "registerForm") RegisterForm registerForm , ModelMap model{

         //previous method extract each field from registerForm 
        //registerServiceImpl.registerUser(field1,field2,field3,fieldn);

        //actual method pass object registerForm
        registerServiceImpl.registerUser(registerForm);   

    }

問題は、RegisterForm をサービス クラスに渡すと高い結合が生成されるかどうかです。o 低結合を成功させるためのベスト プラクティスを使用する代替案。

4

2 に答える 2

1

RegisterForm は確かに DTO であり、vivin-paliathが述べたように、DTO からの部分的なデータだけが役立つ状況になる可能性があるため、コンバーターが必要です。

Spring が提供するコンバーターの使用をお勧めします。カスタム実装を登録するだけで、変換サービスを 1 回呼び出すだけで、コードをクリーンに保ち、変換ロジックから切り離すことができます。

于 2013-07-26T20:18:01.487 に答える