1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update Spring常见问题总结.md

This commit is contained in:
guide 2021-08-09 19:43:23 +08:00
parent 9b9123c5a9
commit 452fc49d6b

View File

@ -252,7 +252,15 @@ public OneService getService(status) {
### 说说自己对于 Spring MVC 了解? ### 说说自己对于 Spring MVC 了解?
谈到这个问题,我们不得不提提之前 Model1 和 Model2 这两个没有 Spring MVC 的时代。 MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210809181452421.png)
网上有很多人说 MVC 不是设计模式,只是软件设计规范,我个人更倾向于 MVC 同样是众多设计模式中的一种。**[java-design-patterns](https://github.com/iluwatar/java-design-patterns)** 项目中就有关于 MVC 的相关介绍。
![](https://img-blog.csdnimg.cn/159b3d3e70dd45e6afa81bf06d09264e.png)
想要真正理解 Spring MVC我们先来看看 Model 1 和 Model 2 这两个没有 Spring MVC 的时代。
**Model 1 时代** **Model 1 时代**
@ -260,6 +268,8 @@ public OneService getService(status) {
这个模式下 JSP 即是控制层Controller又是表现层View。显而易见这种模式存在很多问题。比如控制逻辑和表现逻辑混杂在一起导致代码重用率极低再比如前端和后端相互依赖难以进行测试维护并且开发效率极低。 这个模式下 JSP 即是控制层Controller又是表现层View。显而易见这种模式存在很多问题。比如控制逻辑和表现逻辑混杂在一起导致代码重用率极低再比如前端和后端相互依赖难以进行测试维护并且开发效率极低。
![mvc-mode1](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/mvc-mode1.png)
**Model 2 时代** **Model 2 时代**
学过 Servlet 并做过相关 Demo 的朋友应该了解“Java Bean(Model)+ JSPView+ServletController ”这种开发模式,这就是早期的 JavaWeb MVC 开发模式。 学过 Servlet 并做过相关 Demo 的朋友应该了解“Java Bean(Model)+ JSPView+ServletController ”这种开发模式,这就是早期的 JavaWeb MVC 开发模式。
@ -268,6 +278,8 @@ public OneService getService(status) {
- View展示模型中的数据只是用来展示。 - View展示模型中的数据只是用来展示。
- Controller处理用户请求都发送给 ,返回数据给 JSP 并展示给用户。 - Controller处理用户请求都发送给 ,返回数据给 JSP 并展示给用户。
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/mvc-model2.png)
Model2 模式下还存在很多问题Model2 的抽象和封装程度还远远不够,使用 Model2 进行开发时不可避免地会重复造轮子,这就大大降低了程序的可维护性和复用性。 Model2 模式下还存在很多问题Model2 的抽象和封装程度还远远不够,使用 Model2 进行开发时不可避免地会重复造轮子,这就大大降低了程序的可维护性和复用性。
于是,很多 JavaWeb 开发相关的 MVC 框架应运而生比如 Struts2但是 Struts2 比较笨重。 于是,很多 JavaWeb 开发相关的 MVC 框架应运而生比如 Struts2但是 Struts2 比较笨重。