一、依赖管理
什么叫依赖管理?
我们做过Maven
项目的,都知道pom.xml
的作用。里面配置了一大堆的包依赖。
所以,SpringBoot
的依赖管理,意思就是,我们用SpringBoot
开发web
应用,那么,相关的依赖包,SpringBoot
官方就帮我们配置好了。
我们导入SpringBoot
的相关jar包,通过Maven
技术,对应的版本包通通帮我们引入了。
无需我们自己在去引入。
四部分去理解
1、父项目做依赖管理
2、开发导入starter
场景启动器
1、见到很多 spring-boot-starter-* : *就是指某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter
4、见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。
5、所有场景启动器最底层的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
3、无需关注版本号,springboot
官方jar
包已经对应好版本
4、可以修改默认版本号
二、自动配置
SpringBoot
所有的自动配置功能都在 spring-boot-autoconfigure
包里面
各种配置拥有默认值
按需加载所有自动配置项
比如:
自动配好Tomcat
自动配好SpringMVC
自动配好Web
常见功能
这块的验证,我们需要拿到springboot
的IOC
容器,然后,获取内部组件打印即可。
public static void main(String[] args) {
//1、获取IOC容器
ConfigurableApplicationContext run = SpringApplication.run(Boot01TestApplication.class, args);
//2、查看容器内的所有组件
String[] names = run.getBeanDefinitionNames();
for (String name : names) {
System.out.println(name);
}
}
结果
如dispatcherServlet
组件,拦截请求
如:characterEncodingFilter
,字符编码处理组件
如:multipartResolver
,文件上传组件
自动配好默认的包结构
主程序(即@SpringBootApplication
注解的类)所在包及其所有子包里面的组件都会被默认扫描到
自定义包扫描路径: @SpringBootApplication(scanBasePackages="com.test")