🛫更多知识总结见SpringBoot 2专栏
🚕本篇知识点总结自尚硅谷雷神的视频
🚒博主对于该知识尚在学习阶段
🚄如果发现存在问题请毫不吝啬的指出
🚀🚀扎哇太枣糕的博客主页🚀🚀
目录
1 起步依赖
1.1 starter场景启动器
1.2 父项目作依赖管理
2 自动配置
2.1 自动配置Tomcat服务器
2.2 自动配置web开发场景、SpringMVC组件
2.3 默认的包注解扫描规则
2.4 默认的配置属性值
2.5 按需加载所有的自动配置项
1 起步依赖
1.1 starter场景启动器
在依赖导入这一方面,SpringBoot区别于Spring的就是,Spring在pom.xml文件中手动导入所有的依赖包括版本号,而SpringBoot只需要在项目的pom.xml文件中导入spring-boot-starter-web即可将编写一个web应用所需要的所有的jar包自动加载完成,且使用默认的版本号避免不同技术的各个版本之间出现相互冲突问题。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>
1.2 父项目作依赖管理
每一个SpringBoot项目中都会继承自一个父项目,父项目中会定义好所有的依赖以及版本号,子项目继承父项目之后再导入依赖就可以不用去声明版本号。
以入门案例为例,该案例项目继承自如下父项目
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version> </parent>
这个父项目项目又继承自另一个父项目,在这个父项目中几乎定义了所有可能会用的到的依赖,并对所有的进行了版本仲裁,如果想要修改某个依赖版本的话就在pom.xml文件中使用properties标签对版本号进行再次定义,因为maven依赖版本号采取的是就近原则。
2 自动配置
2.1 自动配置Tomcat服务器
在前面的starter场景启动器中,底层已经导入了Tomcat的依赖,并对Tomcat服务器进行了配置。
2.2 自动配置web开发场景、SpringMVC组件
starter场景启动器的底层也导入了web和SpringMVC需要的依赖,并对常用的组件进行了配置。
具体组件(编码过滤器、前端控制器dispatcherservlet……)的查看可以借助IOC容器的相关API进行获取
2.3 默认的包注解扫描规则
主程序(MainApplication)所在的包及这个包的所有子包都会被扫描到,其他位置的类都将不会被扫描到。这是SpringBoot设置的默认规则,我们也可以使用如下属性人为指定包注解扫描的范围。
其中@SpringBootApplication是一个合成注解,还可以将其拆开使用其中的@ComponentScan注解指定需要扫描的包
2.4 默认的配置属性值
SpringBoot为了简便开发,将Spring配置文件中的所有配置都设置了一个默认的值,而这些配置都映射到一个java类,类中将所有的配置都对应封装到一个private属性并赋予默认值,在容器加载的时候创建相应java类的对象使其起作用。自己创建的配置文件设置值时,会调用封装属性的setter方法修改对应类中的属性值。
以Tomcat服务器的配置为例
2.5 按需加载所有的自动配置项
SpringBoot中所有的自动配置功能都在spring-boot-autoconfigure这个包中,包中有SpringBoot所有的starter,但是并不会直接加载全部的starter而是采用自动配置,所谓的自动配置就是导入哪个依赖加载哪个。
上一篇:【SpringBoot 2】快速入门案例HelloWorld
下一篇:【SpringBoot 2】SpringBoot相较于Spring的特点