我有一个与Spring REST和控制器相关的问题。 我创建足球应用程序。我的应用在数据库中有俱乐部和球员。我有一个用于俱乐部的API RestController和用于玩家的API RestController。 将球员添加到俱乐部控制器中的俱乐部是一种好方法,还是我应该在玩家的控制器中执行此操作,或者这无关紧要?哪种方式更好? 例如,在我俱乐部的控制器中,我有一些俱乐部的CRUD方法,我创建了一些方法,可以通过俱乐部ID获取/添加球员到俱乐部,通过id为俱乐部获得/添加球员等等。它是好还是应该在玩家的控制器? 一般来说,如何考虑这种控制器逻辑 - 如何分离应用程序的连接部分?
答案 0 :(得分:0)
您不应直接从控制器访问数据库。控制器应该是您的表示层,这些crud方法应该绑定到服务使用的存储库。
@Controller - 接受HTTP请求并激活服务
@Service - 用于您的业务逻辑
@Repository - 数据访问逻辑
因此,您应该使用@Controller将数据传递给@Service,它提供了对@Respository CRUD操作的更高级别的抽象。
添加了弹簧参考以获得更详细的说明:
@Repository http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Repository.html
@服务 http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Service.html
关于球员 - 俱乐部关系: 从不同的角度来看,多对一和一对多实际上是相同的关系,这两种方法在技术上都是正确的。决定哪一个对你有更多的语义意义。