【发布时间】:2019-11-29 00:43:24
【问题描述】:
我正在开发一个 Spring Web MVC 应用程序。我有与 CRUD 或复杂操作相关的查询。
我的问题是将我们的逻辑放在哪里,在控制器层还是在服务层?
目前,我正在控制器中编写所有代码,并在controller 中调用service 的save() 或delete() 方法。
请参阅下面的代码示例。请帮助我找到正确的编码方式。
控制器级别:
@Controller
@RequestMapping(value = "/Shipping")
public class ShippingController {
@Autowired
private ShippingService shippingService;
@RequestMapping(value = "/addNewShippingMethod/{id}", method = RequestMethod.POST)
public String addshippingMethod(@PathVariable("id") String id, HttpServletRequest request) {
Shipping shipping=new Shipping();
shipping.setName(request.getParameter("name"));
shippingService.save(shipping);
return "/Shipping/ShippingMethodList";
}
}
@Service
public class ShippingService {
@Autowired
private ShippingMethodRespository shippingMethodRespository;
public ModelAndView saveShippingMethod(HttpServletRequest request, String id) {
shippingMethodRespository.save(shipping);
}
}
服务等级:
@Controller
@RequestMapping(value = "/Shipping")
public class ShippingController {
@Autowired
private ShippingService shippingService;
@RequestMapping(value = "/addNewShippingMethod/{id}", method = RequestMethod.POST)
public ModelAndView addshippingMethod(@PathVariable("id") String id, HttpServletRequest request) {
return shippingService.saveShippingMethod(request, id);
}
}
@Service
public class ShippingService {
@Autowired
private ShippingMethodRespository shippingMethodRespository;
public ModelAndView saveShippingMethod(HttpServletRequest request, String id) {
Shipping shipping=new Shipping();
shipping.setName(request.getParameter("name"));
shippingMethodRespository.save(shipping);
ModelAndView shippingMethodsPage = new
ModelAndView("/Shipping/ShippingMethodList");
return shippingMethodsPage;
}
}
我已经描述了这两种情况第一个是:我们从控制器中保存所有数据并返回页面。
第二种是:使用控制器进行重定向和编写逻辑,并将数据保存在服务层。
您能告诉我编写代码的最佳方法是什么吗?
【问题讨论】:
-
@DushyantTankariya 我认为它与我的问题不同。因为他们只讨论了依赖关系。你对我的问题有什么想法吗?
标签: java spring-mvc spring-data-jpa