您的位置:首页 > 编程语言 > Java开发

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

2020-01-14 16:27 781 查看

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

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

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

pom引入依赖

maven是有依赖传递的所以我们只引入了这三个,但是依赖传递的作用就会自动帮我们引入

我们进入pom文件进入parent中的坐标可以看到
再次点进去就会发现,这个dependencies中其实就是一个依赖管理库

坐标的版本以及坐标都会在这个pom中去声明,所以我们在使用SpringBoot中快速开发其实就是使用到了maven的依赖传递的特性,让工程非常快的执行.

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


@EnableAutoConfiguration(关键点) 点进去查看
点进去AutoConfigurationImportSelector 这个类
查看这个方法,就会查看到对应的 有一个META-INF/Spring.factories
那么就判断在源码包中肯定是有一个此配置的


查看这个配置文件有什么

找几个最常见的servlet 它们统一的后缀名称 AuutoConfiguration

这个类就会去加载默认的配置

当然我们也可以自定义去配置去覆盖这些默认的加载信息 只要符合SpringBoot的规范都是可以做到的
在SpringBoot引入的parent的pom文件中就会有这样的加载方式,如果配置就会读取,并覆盖默认值

配置相应的端口,测试即可成功,测试代码比较简单,自己写个就好.

  • 点赞
  • 收藏
  • 分享
  • 文章举报
meteor-MM 发布了19 篇原创文章 · 获赞 0 · 访问量 550 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: