SpringBoot版本依赖原理以及加载默认配置解析

SpringBoot2版本起步依赖原理以及加载默认配置解析

	虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
	所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
	SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

注意(SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式)

pom引入依赖
SpringBoot版本依赖原理以及加载默认配置解析_第1张图片
maven是有依赖传递的所以我们只引入了这三个,但是依赖传递的作用就会自动帮我们引入
SpringBoot版本依赖原理以及加载默认配置解析_第2张图片
我们进入pom文件进入parent中的坐标可以看到
再次点进去就会发现,这个dependencies中其实就是一个依赖管理库
SpringBoot版本依赖原理以及加载默认配置解析_第3张图片
坐标的版本以及坐标都会在这个pom中去声明,所以我们在使用SpringBoot中快速开发其实就是使用到了maven的依赖传递的特性,让工程非常快的执行.

自动配置原理:
首先就拿启动端口以及配置工程名举例
可以看到我们在入口上是需要配置一个入口配置SpringBootAppclication这个配置包含了有:

SpringBoot版本依赖原理以及加载默认配置解析_第4张图片
@EnableAutoConfiguration(关键点) 点进去查看
点进去AutoConfigurationImportSelector 这个类
查看这个方法,就会查看到对应的 有一个META-INF/Spring.factories
那么就判断在源码包中肯定是有一个此配置的
SpringBoot版本依赖原理以及加载默认配置解析_第5张图片
在这里插入图片描述
查看这个配置文件有什么
SpringBoot版本依赖原理以及加载默认配置解析_第6张图片
找几个最常见的servlet 它们统一的后缀名称 AuutoConfiguration
SpringBoot版本依赖原理以及加载默认配置解析_第7张图片
这个类就会去加载默认的配置
SpringBoot版本依赖原理以及加载默认配置解析_第8张图片
当然我们也可以自定义去配置去覆盖这些默认的加载信息 只要符合SpringBoot的规范都是可以做到的
在SpringBoot引入的parent的pom文件中就会有这样的加载方式,如果配置就会读取,并覆盖默认值
SpringBoot版本依赖原理以及加载默认配置解析_第9张图片
配置相应的端口,测试即可成功,测试代码比较简单,自己写个就好.

你可能感兴趣的:(springboot,SpringBoot,SpringBoot依赖原理)