Spring Boot: 开发web 应用 - 03 Spring Framework 回顾
2017-06-16 10:06
591 查看
回顾Spring Framework
Overview of Spring Framework手绘了完整版的依赖关系。(发现问题还望大家指出)
简化版的依赖关系。
结合Overview of Spring Framework 来更好的理解 Spring Framework。
关于依赖的理解
Example
module A 中有类引用了Module B 中的class。 A依赖B吗(A -> B) ?大部分的情况是这个样子的。。。
打开两节的项目,我们可以看到spring-boot-starter-web 帮助我们引入了如下的module:
spring-boot-starter-web -> spring-boot-starter -> spring-boot-autoconfigure -> spring-boot
可以看出spring-boot-autoconfigure只依赖于spring-boot 模块。(spring-boot 仅依赖于spring-core和spring-context)
打开spring-boot-autoconfigure-1.5.4.RELEASE-sources.jar 文件查看其中的代码: 比如:
WebMvcAutoConfiguration可以发现这个类引入了很多的spring-web 及其他module的class。 (从上面的推理来看spring-boot-autoconfigure并不依赖于spring-web)
验证
新建一个Spring Boot的项目, 只选择JPA 一个Dependency, 通过pom.xml 的视图查看Resolved Dependencies 可以看到spring-boot-autoconfigure被引入,而spring-web没有被引入。Why
类WebMvcAutoConfiguration中的如下注解决定了只有web application,这个类才会被load进来。
@ConditionalOnWebApplication @ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurerAdapter.class })
Conditional 相关注解不在这一篇幅深入探究。
相关文章推荐
- Spring Boot: 开发web 应用 - 01 创建项目
- Spring Boot: 开发web 应用 - 04 (Optional) Web MVC - Look Under The Hood
- Spring Boot干货系列:(五)开发Web应用之JSP篇
- Spring Boot干货系列:(四)开发Web应用之Thymeleaf篇
- Spring Boot基础教程12-web应用开发-文件上传
- Spring Boot - Web 应用开发 - Servlet, Filter, Listener
- Spring Boot - Web 应用开发 - 文件上传
- Spring Boot基础6-web应用开发-模板引擎FreeMarker
- Spring Boot ---- 快速开发web应用的神器
- (十)SpringBoot之web 应用开发-Servlets, Filters, listeners
- 【Spring Boot】web应用开发-Servlets, Filters, listeners
- Spring Boot基础教程9-web应用开发-错误处理
- Spring Boot基础7-web应用开发-模板引擎Thymeleaf
- SpringBoot | 第十七章:web应用开发之文件上传
- SpringBoot | 第十八章:web应用开发之WebJars使用
- SpringBoot | 第十七章:web应用开发之文件上传
- Spring Boot - Web 应用开发 - CORS
- Spring Boot - Web 应用开发 - 错误处理
- React.js 集成 Kotlin Spring Boot 开发 Web 应用实例详解