Spring Boot Starter原理

本文主要介绍:

1. Spring Boot 是如何进行Jar的版本管理(spring-boot-starter-parent);

2. Spring Boot如何通过引入 Starter 引入所有功能相关的依赖(POM的依赖传递);

1. Spring Boot 是如何进行Jar的版本管理

所有Spring Boot项目,在创建时都必须依赖父项目.并定义父级依赖版本信息,如下为2.2.9.RELEASE(可修改)

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.2.9.RELEASE</version>
   <relativePath/>
</parent>

 在spring-boot-starter-parent中:

  • properties中定义了java版本信息,编译源文件编码格式,编译后文件格式,Maven打包编译版本信息等
  • resources中定义了资源新信息,针对application.yml/properties支持不同环境配置application*.yml/properties;
  • pluginManagerment定义了插件及版本信息

************************************************************************

parent中定义了父依赖为spring-boot-dependencies

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-dependencies</artifactId>
   <version>${revision}</version>
   <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

spring-boot-dependencies中:

properties中定义了jar的版本信息;

dependencyManagement中依赖的jar及properties中定义的版本信息

因此:spring-boot-starter-parent通过继承了spring-boot-denpendences,而spring-boot-dependences中定义了版本信息,从而实现了SpringBoot的版本依赖管理;SpringBoot项目在基层了spring-boot-starter-parent在制定了spring-boot-starter-parent的版本信息后,就已经锁定了部分依赖的版本信息;

2. Spring Boot如何通过引入 Starter 引入所有功能相关的依赖

项目中引入的各种starter,在基于POM的依赖传递原理上,在各个依赖底层,打包了多个JAR

以spring-boot-starter-web为里,在 spring-boot-starter-web 中,打包了Web开发场景所需的所有依赖(比如spring-web;spring-mvc;tomcat等),因此,当我们的项目中引入了spring-boot-starter-web后,不在需要引入额外的依赖,就可以实现Web的场景开发了;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值