From 1503850f21255c0cc1670df4308a23d5bb6a38b5 Mon Sep 17 00:00:00 2001 From: guide Date: Sun, 3 Apr 2022 20:50:33 +0800 Subject: [PATCH] =?UTF-8?q?[docs=20update]Spring,Spring=20MVC,Spring=20Boo?= =?UTF-8?q?t=20=E4=B9=8B=E9=97=B4=E4=BB=80=E4=B9=88=E5=85=B3=E7=B3=BB=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/open-source-project/readme.md | 2 +- .../spring-knowledge-and-questions-summary.md | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/docs/open-source-project/readme.md b/docs/open-source-project/readme.md index c8384e4f..7275c40f 100644 --- a/docs/open-source-project/readme.md +++ b/docs/open-source-project/readme.md @@ -5,7 +5,7 @@ category: 开源项目 精选 Github 和 Gitee 上优质的 Java 开源项目,希望能够帮助到你。 -欢迎大家在 [issues 区](https://github.com/CodingDocs/awesome-java/issues)推荐自己认可的 Java 开源项目,让我们共同维护一个优质的 Java 开源项目精选集! +欢迎大家在项目 [issues 区](https://github.com/CodingDocs/awesome-java/issues)或者当前页面的评论区推荐自己认可的 Java 开源项目,让我们共同维护一个优质的 Java 开源项目精选集! - Github 地址:[https://github.com/CodingDocs/awesome-java](https://github.com/CodingDocs/awesome-java) - Gitee 地址:[https://gitee.com/SnailClimb/awesome-java](https://gitee.com/SnailClimb/awesome-java) diff --git a/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md b/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md index 7b67dc41..288dd2fb 100644 --- a/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md +++ b/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md @@ -34,11 +34,11 @@ Spring 提供的核心功能主要是 IoC 和 AOP。学习 Spring ,一定要 下图对应的是 Spring4.x 版本。目前最新的 5.x 版本中 Web 模块的 Portlet 组件已经被废弃掉,同时增加了用于异步响应式处理的 WebFlux 组件。 -![Spring主要模块](https://images.xiaozhuanlan.com/photo/2019/e0c60b4606711fc4a0b6faf03230247a.png) +![Spring主要模块](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/jvme0c60b4606711fc4a0b6faf03230247a.png) **Spring Core** -核心模块, Spring 其他所有的功能基本都需要依赖于该类库,主要提供 IoC 依赖注入功能的支持。 +核心模块, Spring 其他所有的功能基本都需要依赖于该模块,主要提供 IoC 依赖注入功能的支持。 **Spring Aspects** @@ -73,6 +73,26 @@ Spring 团队提倡测试驱动开发(TDD)。有了控制反转 (IoC)的帮 Spring 的测试模块对 JUnit(单元测试框架)、TestNG(类似 JUnit)、Mockito(主要用来 Mock 对象)、PowerMock(解决 Mockito 的问题比如无法模拟 final, static, private 方法)等等常用的测试框架支持的都比较好。 +## Spring,Spring MVC,Spring Boot 之间什么关系? + +很多人对 Spring,Spring MVC,Spring Boot 这三者傻傻分不清楚!这里简单介绍一下这三者,其实很简单,没有什么高深的东西。 + +Spring 包含了多个功能模块(上面刚刚提高过),其中最重要的是 Spring-Core(主要提供 IoC 依赖注入功能的支持) 模块, Spring 中的其他模块(比如 Spring MVC)的功能实现基本都需要依赖于该模块。 + +下图对应的是 Spring4.x 版本。目前最新的 5.x 版本中 Web 模块的 Portlet 组件已经被废弃掉,同时增加了用于异步响应式处理的 WebFlux 组件。 + +![Spring主要模块](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/jvme0c60b4606711fc4a0b6faf03230247a.png) + +Spring MVC 是 Spring 中的一个很重要的模块,主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/java-guide-blog/image-20210809181452421.png) + +使用 Spring 进行开发各种配置过于麻烦比如开启某些 Spring 特性时,需要用 XML 或 Java 进行显式配置。于是,Spring Boot 诞生了! + +Spring 旨在简化 J2EE 企业应用程序开发。Spring Boot 旨在简化 Spring 开发(减少配置文件,开箱即用!)。 + +Spring Boot 只是简化了配置,如果你需要构建 MVC 架构的 Web 程序,你还是需要使用 Spring MVC 作为 MVC 框架,只是说 Spring Boot 帮你简化了 Spring MVC 的很多配置,真正做到开箱即用! + ## Spring IOC & AOP ### 谈谈自己对于 Spring IoC 的了解 @@ -295,7 +315,7 @@ Model2 模式下还存在很多问题,Model2 的抽象和封装程度还远远 随着 Spring 轻量级开发框架的流行,Spring 生态圈出现了 Spring MVC 框架, Spring MVC 是当前最优秀的 MVC 框架。相比于 Struts2 , Spring MVC 使用更加简单和方便,开发效率更高,并且 Spring MVC 运行速度更快。 -MVC 是一种设计模式,Spring MVC 是一款很优秀的 MVC 框架。Spring MVC 可以帮助我们进行更简洁的 Web 层的开发,并且它天生与 Spring 框架集成。Spring MVC 下我们一般把后端项目分为 Service 层(处理业务)、Dao 层(数据库操作)、Entity 层(实体类)、Controller 层(控制层,返回数据给前台页面)。 +MVC 是一种设计模式,Spring MVC 是一款很优秀的 MVC 框架。Spring MVC 可以帮助我们进行更简洁的 Web 层的开发,并且它天生与 Spring 框架集成。Spring MVC 下我们一般把后端项目分为 Service 层(处理业务)、Dao 层(数据库操作)、Entity 层(实体类)、Controller 层(控制层,返回数据给前台页面)。 ### SpringMVC 工作原理了解吗?