如何知道Java应用程序是否使用MVC设计模式?

时间:2019-01-29 10:09:42

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

我怎么知道Java应用程序是否使用MVC设计模式?例如,我想知道github上的这个应用程序是否使用MVC设计模式:https://github.com/eveningstar33/GoalTracker

这是一个全栈应用程序,前端是用Angular制作的,后端是用Spring Boot制作的。如果是的话,我想知道谁是模特?我认为RestController是Controller,而Angular应用是View。是不是还是如果一个应用程序使用Spring MVC,它是否也使用MVC设计模式?

2 个答案:

答案 0 :(得分:1)

Spring MVC中的

MVC 部分保留用于更广泛的JSP/Sevlets based MVC概念的实现(非常好的实现:)),其中通常有Front Controller Servlet,它将请求分配给相应的查看控制器并解析/准备要为用户呈现的结果视图。

当我们同时使用 Angular (或任何其他Single Page Application JS框架)和 Spring MVC 时,MVC部分可能会更改。就像在Angular中一样,每个组件通常都有“ Controller”类,该类内部可以包含很多逻辑,可以连接到不同的服务。因此,更少的逻辑留在服务器上,它可以充当DAO层的代理来执行CRUD操作。在这种情况下,很常见的是:

  • 视图-角度视图模板(例如Goal View
  • 控制器-角度控制器(例如Goal Component
  • 模型-REST API(使用或不使用Spring MVC框架构建)(例如Goal Resource

答案 1 :(得分:0)

MVC是软件开发中的一种设计模式。模型通常是封装业务对象数据的POJO(普通Java对象),视图是用户与之交互的对象,它还负责从用户处获取请求并呈现响应,并且控制器位于视图和模型之间以传输数据并担任导航决策者。

您可以在Spring Boot中编写后端,为包括Angular在内的任何客户端提供HTTP API。 Angular内部使用TypeScript(JavaScript的超集),您可以使用TypeScript来使用API​​。

这里是一个这样的例子,我在Sprint Boot中编写了书面服务-https://github.com/royalghost/PortfolioTrackerServices

然后有一个单独的项目,使用Angular使用上述服务-https://github.com/royalghost/PortfolioServicesTrackerClient

Spring MVC是实现MVC设计模式的框架之一。您可以看一下使用Spring MVC的单独项目-https://github.com/royalghost/UserRegistration。还要注意,该项目使用Spring Boot,因为Spring Boot是将所有必需的库放在一起以快速构建,启动和部署应用程序的简便方法。

Angular在单页面应用程序(SPA)中更受欢迎,并且现在许多服务器端计算都被推向客户端(这也是为了扩展产品。)因此,它完全取决于开发人员的设计模式或使用相同技术和堆栈时要选择的体系结构。

参考: MVC-https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller 角度-https://angular.io/guide/architecture