简化配置
在如果自己需要修改一些Mvc、tomcat等相关的配置,只需要建立一个 application.properties 配置文件。名字是死的。在里面就能设置你想改的配置。对于想改的配置不知道对应的key可以去SpringBoot的官方文档找到ApplicationProperties这个选项,在里面就能找到对应的各种选项
简化部署
在学习MVC时,需要自己在配置文件中声明打包类型为war,但是在SpringBoot中可以直接将项目打包为一个可执行的jar包【他里面有编译完成的文件和运行时所需要的所有依赖】,引入SpringBoot的插件即可。这个插件在官方文档也有。
<!--引入打包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
使用Maven工具将项目打包。然后找到jar所在的位置,进入命令行。使用 java -jar jar包的名字。就能把jar包部署好,在浏览器访问也有回应
依赖管理
SpringBoot需要引入一个父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
</parent>
在父项目里面,看见了父项目的父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.1</version>
</parent>
在spring-boot-dependencies里面发现都是使用SpringBoot时可能用到的依赖。这样就保证我们在使用SpringBoot工作时免去了依赖版本控制问题。
如果在使用时需要调整依赖版本,需要进入spring-boot-dependencies里面找到依赖对应的key,然后在自己工程的pom文件里,对想要修改的依赖进行版本修改。以mysql-connector-java为例
在spring-boot-dependencies里面key是<mysql.version>的,此时版本为8.0.27
<mysql.version>8.0.27</mysql.version>
....
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
所以在pom文件中这样修改
<!--maven就近原则自己设置mysql-connect版本-->
<properties>
<mysql.version>8.0.21</mysql.version>
</properties>
<!--引入SpringBoot的依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
场景启动器
在官方当中对spring-boot-starter-进行了解释,这是某一个开发场景的启动器。一个starter是一系列开发场景依赖的集合。所以只要引入一个starter就可以引入场景开发需要的大多数依赖【maven的特性:依赖传递原则】,官方场景启动器的命名方式是spring-boot-starter-*, *代表的是SpringBoot的一系列场景启动器。也可以自己设置场景启动器,但是命名方式不要和官方的一样 。开头不要是spring-boot。SoringBoot推荐使用xxxx-spring-boot-xxx.这种命名方式
自动配置
查看组件
在SpringBoot的主程序中SpringApplication.run方法返回值是IOC容器,调用返回对象的方法可以查看容器里面的组件。在里面能看见Mvc开发需要的全套配置和常用组件。
public static void main(String[] args) {
// 返回对象是IOC容器
ConfigurableApplicationContext run = SpringApplication.run(MyApplication.class, args);
// 调用getBeanDefinitionNames方法,查看IOC容器中的组件
String[] names = run.getBeanDefinitionNames();
for (String name : names) {
System.out.println("name = " + name);
}
}
设置组件扫描
在SSM阶段需要设置组件扫描,但是在SpringBoot中,默认会扫描跟主程序MyApplication同一级以下的包。如果在主程序以上就需要设置。通过设置属性scanBasePackages值。或者通过@CompentScan注解。
@SpringBootApplication(scanBasePackages = {"包路径"})
一个上面的顶下面这三个
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
修改配置
在SpringBoot中各种配置都有默认值。就比如说tomcat端口号是8080.
需要对配置进行修改,就在application.properties文件中进行修改。想要进行修改的配置对应的key在官方文档的Application Properties下面。
server.port=8888
按需配置
在SpringBoot里面配置了很多开发场景也有很多场景依赖代码。这些场景依赖不会一次性引入,都是按需引入。如果不引入开发场景,自动配置代码不能生效【就是去源码里面看冒红,毕竟也不用】。如果需要针对场景开发,只要引入自己需要的开发场景spring-boot-starter-xxx【开发场景】,自动配置代码就能用了。