在春季将休息控制器与服务合并



当我们在弹簧框架中使用控制器向客户端或前端提供REST服务时,例如以JSON格式提供REST服务,我们主要将Java逻辑分为两层:控制器和服务。但是我现在发现的是,控制器几乎完全没有实现,只是将其委派给服务层。

经过一段经验,我开始认为控制器被认为是MVC弹簧框架中的层之一,当您使用它们提供简单的休息服务而无需建立演示层时,您可以将其用作纯服务层。更多的东西 - 如果您删除了@component,@requestbody等所有春季注释。此类将成为纯服务,并且无需在控制器和服务之间进行分离。即使您谈论它们,您通常也会说这样的话:我们为客户提供休息服务"

我缺少一些大事吗?

,但请记住现实世界,不要说:

"如果外星人落在地球上,代码可能会刹车。"

您是正确的控制器是Spring MVC体系结构中的额外层,但是使您的代码易于管理很重要。控制器的唯一目的是映射您的HTTP请求,获取请求数据并致电服务以处理这些数据并提供响应数据。

另一方面,服务层是MVC体系结构中可重复使用的层类型。服务是由可以在需要时重复使用的方法组成的,如果您不使用服务并在控制器中执行业务逻辑,则管理更复杂,并且不会可读的代码。

此外,诸如@Service@Repository@Controller之类的注释仅用于识别,您还可以使用@Component注释而不是这些注释。但是正确注释将使代码对其目的更加可读和理解。希望我回答您的问题。

最新更新