依赖管理(Dependency Management)
- 继承了 spring-boot-starter-parent 的好处和特点
默认编译Java 1.8
默认编码UTF-8
通过spring-boot-denpendencies的pom管理所有公共依赖的版本,这样就不用写依赖的版本了插件管理 - POM文件中的Maven插件
<!-- 作用:将一个SpringBoot的工程打包成为可执行的jar包 -->
<build>
<plugins>
<plugin> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> </plugin>
</plugins>
</build>
如果想使用父pom文件中的任何插件,无需配置即可使用。
starters的原理
starters是依赖关系的整理和封装。是一套依赖坐标的整合,可以让导入应用开发的依赖坐标更方便。
有了这些Starters,你获得Spring和其整合的所有技术的一站式服务。无需配置、无需复制粘贴依赖坐
标,一个坐标即可完成所有入门级别操作。举例:JPA or Web开发,只需要导入 spring-boot- starter-data-jpa 或 spring-boot-starter-web 。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
每个Starter包含了当前功能下的许多必备依赖坐标,这些依赖坐标是项目开发,上线和运行必须的。同时这些依赖也支持依赖传递。举例: spring-boot-starter-web 包含了所有web开发必须的依赖坐标
starter的命名规范:官方的starter写法 spring-boot-starter-* ,非官方的starter写法thirdpartyproject-spring-boot-starter
自动配置原理
每个Starter基本都会有个AutoConfiguration的Jar包,每个AutoConfiguration定义了约定的默认配
置。
有了自动配置,那么我们配置基本就全部采用默认配置。当然需要配置时,也可以更改。
如何查看自动配置的值在哪里?查看启动类注解@SpringBootApplication
追踪步骤:一路往下点!
- @EnableAutoConfiguration
- @Import({AutoConfigurationImportSelector.class})
- spring.factories
- org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfigur
ation - @EnableConfigurationProperties({ServerProperties.class})
-
private final ServerProperties.Tomcat tomcat = new ServerProperties.Tomcat();