如何组织@RestController @Controller结构url-mapping和内部结构明智?

时间:2015-08-30 12:54:24

标签: java spring spring-mvc model-view-controller controller

在我们的网络应用程序中,我们有@Controller类和@RestController。

您如何建议在我们的内部项目结构项目(包/模块)和网址映射中组织它们?

1 个答案:

答案 0 :(得分:1)

  1. 关于包结构,您有两种选择。层对比 组件包装。

    图层打包保留图层bean位于相同包中的策略(例如UserControllerInvoiceController com.example.application.web个套餐和UserServiceInvoiceService位于com.example.application.service包中。 这在野外是最常见的。

    组件打包保留每个功能的策略包(例如UserControllerUserService com.example.application.userInvoiceControllerInvoiceService位于com.example.application.invoice}。

    到目前为止,我只对Layer包装有过经验并获得了意见 组件包装可以解决很多问题(特别是 耦合问题,因为你经常可以使用包私有bean 公共)。所以,如果它取决于我,我会选择后者 做法。

    但是你的团队必须决定使用哪种结构并坚持下去 它

    您可以在此SO thread

  2. 中详细了解优缺点
  3. 关于控制器命名,这取决于你是否正在做 REST或VIEW模板。 Rest API可以很好地反映URL 控制器名称中的资源。如果您正在处理VIEW模板 使用Spring MVC,反映视图名称会很好 控制器。这自然会创建策略一个视图/ REST资源 控制器,我肯定会遵循。
  4. 网址结构取决于您的域名。如果你有很多 资源,您想要将它们分组并反映的视图 URL中的这些类别(" / shopping / invoice"," / profile / user")。一世 不了解您的架构(SOA与Monolith),但在SOA中 体系结构可以使用根级别URL进行特定路由 服务。因此,您的服务可以自然地处理一些单独的域 顾虑。