概述
前言
通过编写SpringBoot的Hello Word我们体会到了SpringBoot的强大与便捷。 这些功能都是基于SpringBoot给我们提供的两大优秀特性:
- 依赖管理
- 自动配置
这篇主要记录SpringBoot的依赖管理:
在我们创建的SpringBoot项目中,pom.xml文件中,默认只导入了spring-boot-starter-parent父项目和pring-boot-starter-web web场景包,这样我们整个SpringBoot应用程序就可以启动运行,这是为什么,让我们一探究竟。
一、依赖管理
这个父项目的作用就是用来做依赖管理的,子项目写依赖就不需要写版本号了。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
我们点进去spring-boot-starter-parent,发现它还有一个父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.5</version>
</parent>
再点进spring-boot-dependencies这个包,发现里面有的<properties> 里面几乎声明了我们开发的所有jar包(我这里为了页面简简洁,删除了好多,用了。。。省略),声明了很多jar包的依赖,所以我们不用写版本号。
<properties>
<activemq.version>5.16.3</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.91</appengine-sdk.version>
<artemis.version>2.17.0</artemis.version>
<aspectj.version>1.9.7</aspectj.version>
<assertj.version>3.19.0</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<awaitility.version>4.0.3</awaitility.version>
<build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
<byte-buddy.version>1.10.22</byte-buddy.version>
<caffeine.version>2.9.2</caffeine.version>
<cassandra-driver.version>4.11.3</cassandra-driver.version>
<classmate.version>1.5.1</classmate.version>
。。。。。。
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-amqp</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-blueprint</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
。。。。。
导入jar包
比如:我们要在我们的项目中使用mysql的驱动包,那只需要在我们的项目pom.xml文件中引入mysql驱动的依赖Maven坐标,无需写版本号,就会自动引入jar包。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
导入自己想要的版本(不想使用Springboot导入的依赖版本)
如果我们需要自己想要版本号的jar包,按照spring-boot-dependencies定义好的依赖名称(查看spring-boot-dependencies里面规定当前依赖的版本 用的 key)重新导入需要的版本。
// 自定义版本号
<properties>
<mysql.version>5.1.43</mysql.version>
<properties/>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
二、场景启动器
我们创建的Springboot项目,开发web项目,我们无需导入很多依赖jar包,比如Spring, SpringMVC 等web开发所需要的jar的依赖,这是因为Springboot默认导入的spring-boot-starter-web场景启动器, 会帮我们导入所有web相关的jar包依赖。
starter是一组依赖的集合描述,只要引入一个starter,它的整个完整开发场景就被全部引入了。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
进入spring-boot-starter-web可以看到,其所依赖的依赖jar坐标,其中最基本的核心依赖就是
spring-boot-starter
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.5.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.5.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.5.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.10</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
<scope>compile</scope>
</dependency>
</dependencies>
最后
以上就是包容百褶裙为你收集整理的SpringBoot依赖管理的全部内容,希望文章能够帮你解决SpringBoot依赖管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复