首页 > 解决方案 > 在 Spring Application 中拥有 RestController 和 Controller 的最佳实践

问题描述

我不是在问是否可能,我知道这是可能的,但我想知道在我的应用程序中有前端的同时提供休息服务的最佳方式是什么。

我正在开发一个 Spring Boot 应用程序,我目前有一个调用 jsp 页面的控制器和一个单独的RestController。我希望能够通过 Android 应用程序使用它。

那么在我的应用程序中同时拥有一个 Controller 和一个单独的Restcontroller 是否正确?例如,将从 /api/* 调用 Rest 控制器方法。


编辑:我知道两者之间的区别,但是因为我希望能够返回一个视图(而且我不应该使用 RestController 这样做)并且我想要一个休息服务我想知道我是否可以同时拥有他们(当然是分开的)。

非常感谢你。

标签: javaspringrest

解决方案


我会说这是可能的,但在典型的分层spring应用程序(将回到那个)中被认为是一种不好的做法(除了像REST应用程序中的Swagger控制器这样的极端情况)
你可能想要创建一个multi -module 项目,可能看起来像这样:

  • 父项目
    -- 核心
    -- web api (jsp based)
    -- rest api (for android)

web api和rest api都依赖于核心。
web api 和 rest api 是独立的部署单元。您可以将它们部署在同一台服务器上或作为单独的应用程序运行(例如使用 spring boot)。取决于您的用例。
这样您就可以将业务逻辑集中在一个地方(核心)。

您可能还想阅读有关ports and adapters架构的信息,这可能会让您了解如何以更有条理的方式解决这个问题,而不仅仅是让控制器和 RestController 并排放置


推荐阅读