我在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哪种最佳做法可以成功实现低耦合。
最佳答案
RegisterForm的确是DTO,正如vivin-paliath所述,您可能会遇到以下情况:仅来自DTO的部分数据很有用,因此需要转换器。
我建议使用spring提供的Converters,您只需要注册您的自定义实现,对转换服务的一次调用就可以使您的代码保持干净并与转换逻辑分离。