spring REST API使用哪种设计模式

ddarikpa  于 2023-01-12  发布在  Spring
关注(0)|答案(2)|浏览(104)

我在面试中问了以下问题,但无法找到以下问题的直接答案。
1.在Sping Boot 应用程序中创建REST API时,我们遵循什么设计模式?
1.微服务使用哪种设计模式?

aamkag61

aamkag611#

对于您的问题1,我们使用(MVC)模式创建REST API,但在REST API中,我们没有使用View,而是使用JSON响应,以及在构建REST API时可能使用的其他模式,包括Command Query Responsibility Segregation (CQRS)模式,同样值得一提的是,Microservices也使用我们现在提到的这种模式,因为Microservices使用的体系结构风格涉及将大型复杂应用程序构建为小型独立服务的集合,构建microservices时通常使用的设计模式是Command Query Responsibility Segregation (CQRS)模式,因为此模式涉及将readingwriting数据的职责分离到单独的组件中,从而将single responsibility原样提供给组件。

62lalag4

62lalag42#

面试官所涉及的问题是相当广泛的问题。无论如何,我相信展示你基于Spring MVC模式的基础知识,以及Sping Boot 中嵌入式Tomcat Servlet容器是如何操作的是很重要的。(所以基本上它是Spring Boot控制器的主要角色)
在Spring MVC中,您可以通过添加spring-boot-starter-web依赖项,使用各种控制器来处理HTTP请求并创建REST API。此依赖项包括一些关键库,包括Spring MVC框架和Tomcat servlet容器。然后,您有两个选项@Controller@RestController来为Web应用程序创建自己的servlet。由于面试官询问REST API设计,我更喜欢使用@RestController,因为这个注解能够产生RESTful响应实体。
对于第二个问题,我的回答比较谨慎,因为微服务架构是一种“架构模式”,是一种比较复杂的业务服务后端结构,总的来说,我认为Event-driven design pattern是一个很好的选择,是实现成功MSA的基础。
在MSA中,event-driven design pattern对于启用不同微服务项目之间的通信非常有用。因为微服务被设计为小型、独立和松散耦合,所以它们通常使用asynchronous messages(a.k.a. events)彼此通信。通过使用event-driven design pattern,您可以在微服务之间创建publish-subscribe model通信。这可以使得随着时间的推移更容易缩放系统和添加新的微服务。
但是不要忘记MSA包含各种各样的设计模式,它们也是非常有用的!

相关问题