使用一些Spring Boot教程,这些教程让我了解一些像Spring-Data这样的Spring项目。 这是一个控制器方法,它获取客户数据,将其保存到数据库,然后将所有已保存的客户返回到列表中:
@RequestMapping(value="/customer", method=RequestMethod.POST)
public String submitCustomer(@ModelAttribute Customer customer, Model model) {
System.out.println("First name is "+customer.getFirstName());
repository.save(customer);
List<Customer> customers = repository.findAll();
System.out.println("Length is "+customers.size());
model.addAttribute("customers", customers);
return "result";
}
我不确定在控制器类中调用repository
。
Customer
bean并使用customer.save()
或customer.getAll()
吗?CustomerDAO
类吗?答案 0 :(得分:4)
直接从控制器调用Repository很好。你可能做的是创建service layer,它将使用存储库与数据库通信,以执行一些复杂的操作。
这种复杂的操作可以是例如保存对客户的编辑,同时还创建审计日志条目并更新与客户关联的一些实体。像这样的动作通常应该是原子的,因此服务层通常是应用事务控制逻辑的地方。
我应该创建一个与数据库通信的CustomerDAO类吗?
在此上下文中,存储库代表DAO或数据访问对象,因此没有。
答案 1 :(得分:0)
您最好在Apache Maven中创建一个包含所有DAO的模块。 DAO是与数据库通信的最佳方法。 save()和getAll()应该包含在DAO中。实现DAO后,应该在submitCustomer()类中注入DAO。