SpringBoot主要有两个特点:
1、依赖管理2、自动配置
依赖管理:
依赖管理的特点:
- 父项目做依赖管理。
- 开发过程中导入stater场景启动器。
- 无需关注版本号可以开启版本的自动仲裁。
- 可以修改版本号。
父项目做依赖管理:
springBoot项目中的pom配置文件中的代码:
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.6.2</version>
</parent>
上述的代码就代表父项目中的依赖管理,在父项目中还有一个父项目;代码如下:
而在spring-boot-dependencies项目中的代码如下所示:
内部声明了几乎所有的开发者中可以用到的依赖的版本。通过这个项目中的代码就可以实现通过父项目来实现父项目的依赖管理。
无需关注版本号,可以实现版本仲裁:
通过上面的代码可以看的出来springBoot的父项目几乎定义了几乎所有依赖的版本。所以我们就不需要持续关注版本号,专注于业务逻辑的开发。所以就实现了版本仲裁。
修改版本号:
如果不想使用springBoot的版本可以想在SSM项目开发的步骤中进行声明依赖的版本。
代码如下:
<!--修改由springboot管理的MySql驱动-->
<properties>
<mysql.version>5.1.03</mysql.version>
</properties>
通过上面的配置就会覆盖springBoot 默认的版本号,实现自定义版本号的目的。
开发过程中可以引入场景启动器:
每个场景启动器都是一组依赖的集合。
场景启动器的特点:
- 见到spring-boot-starter-*就是某一个场景启动器。当然*-spring-boot-starter也是场景启动器,是第三方技术的启动器。
- 只要引入某个stater,那么这个场景中所需要的所有常规的依赖但会进行自动引入。
- springBoot项目开发中所有可以进行依赖的场景启动器大全:在官网https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter中都有介绍。
- 所有场景启动器的最低层的依赖都是:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency
自动配置:
- 自动配置好tomcate服务器。
- 自动配置好SpringMVC
- 自动配置好Web的常见功能。
- 默认的包结构。
- 各种自动配置都拥有默认值。
- 按需加载所有的自动配置项。
- 等等。
自动配置好Tomcate服务器:
需要引入下面的依赖:
自动配置好SpringMVC
引入SpringMVC的全套组件。
自动配置号springMVC的常用组件。
自动配置好Web的常见功能:
例如:字符编码问题:
默认的包结构:
主程序所在包及其子包都会被默认扫描【包扫描】,当然也可以改变springBoot的默认包扫描的路径:
使用主配置类中的SpringBootAppCation注解的scanBasePackages属性进行设置包扫描的
地址。
代码:
@SpringBootApplication(scanBasePackages ="com.itguigu") public class MainApplication { public static void main(String[] args) { @ComponentScan
或者是在主启动类类上面@ComponentScan注解。但是@SpringBootApplication 注解中已经包含了@ComponentScan注解。
各种配置拥有默认值:
默认的配置都是映射到每个类上的。配置文件中的配置的值都是绑定到某个类中的属性上,这个类再在容器中创建对象。
按需加载我们的自动配置项:
我们知道springBoot中有很多场景。但是项目启动的时候只会加载在pom.xml文件中引入的场景的自动配置项。
所有场景的自动配置都依赖于
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.6.2</version>
<scope>compile</scope>
</dependency>
上述所在的位置:是在场景启动器的父项目中就包含上述的依赖。
【扩展】
上述介绍中springBoot具有引入场景启动器就具有这个场景下的全套的环境配置。所以说引入了:
<!-- web的场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.6.2</version>
</dependency>
所以说引入了上述的场景启动器,Tomcate的配置也就会被一起进行引入了: