实现具有相同功能的控制器的最佳实践是什么?

时间:2017-10-09 11:00:38

标签: java spring model-view-controller

我有简单的WebApp,它有两个表KeyError: 4Clothes
创建控制器的最佳做法是什么,因为它们都有CRUD方法。

Shoes

@Controller @RequestMapping("/shoes") @Component public class ShoesController { private ShoesService shoesService; @Autowired public void setShoesService(ShoesService shoesService) { this.shoesService = shoesService; } public ShoesService getShoesService() { return shoesService; } @RequestMapping(value = "/view/all", method = RequestMethod.GET) public @ResponseBody List<Shoes> getAllShoes(){ return shoesService.getAllShoes(); } @RequestMapping(value = "/byId/{id}", method = RequestMethod.GET) public @ResponseBody Shoes getShoesById(@PathVariable ("id") Integer id, Shoes shoes){ //TODO remove hardcoded values return shoesService.getShoesByID(id, shoes); } @RequestMapping(value = "/view/{columnName}={value}", method = RequestMethod.GET) public @ResponseBody List<Shoes> getByColumnValue(@PathVariable ("columnName") String colunmName, @PathVariable("value") String columnValue, Shoes shoes){ //TODO remove hardcoded values return shoesService.getByColumnValue(colunmName, columnValue, shoes); } @RequestMapping(value = "/edit/id={id}", method = RequestMethod.GET) public @ResponseBody Shoes update(@PathVariable ("id") Integer id, Shoes shoes){ shoes = getShoesById(id, shoes); shoes.setShoesSeason("SPRINGGG"); shoesService.updateShoes(shoes); return shoes; } @RequestMapping(value = "/delete/{id}", method =RequestMethod.GET) public @ResponseBody List<Shoes> delete(@PathVariable ("id") Integer id, Shoes shoes){ shoes = getShoesById(id, shoes); shoesService.delete(shoes, id); return getAllShoes(); } @RequestMapping(value = "/add", method = RequestMethod.GET) public @ResponseBody List<Shoes> add (Shoes shoes){ shoes = new Shoes(333666, "Blue", "Autumn", "Noski", "URL"); shoesService.add(shoes); return shoesService.getAllShoes(); } } 控制器具有相同的实现。
具有相同功能的实现控制器的最佳实践是什么?

2 个答案:

答案 0 :(得分:2)

我认为好的和简单的解决方案是使用Spring Data REST。 您还可以创建抽象控制器,该控制器可以根据您要使用的类型进行参数化。

答案 1 :(得分:1)

您还可以创建父类并使用继承。这样,所有子类都将具有与父类相同的方法。如果需要任何特定方法,可以直接在子类中创建它。