入门程序配置解析
大家在查看的时候可以通过目录跳转,配置文件我全给复制过来了,后来卡的不行,删了很多,大家重点知道方法就行,你电脑上的和我的没有区别,等往后多学点再回头看就知道啥子意思了;别看眼花了。哈哈哈
1、pom.xml中的配置
通过入门程序可以看出来,使用springboot之后我们没有写applicationContext.xml这个复杂的配置文件,也没有导入几十个jar包的操作,这些操作为什么不见了呢,主要就是下面这段配置起的作用。
<!-- 复制过来的-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2、一探究竟这个东西到底是啥
安装control键,鼠标放置在这段配置上点击进去会打开spring-boot-starter-parent-2.2.2.RELEASE.pom文件,内容如下,内容相当长,但是只用看第三行的parent,中间有一个spring-boot-dependencies项目,继续点进去。
<?xml version="1.0" encoding="utf-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
<artifactId>spring-boot-starter-parent</artifactId>
<packaging>pom</packaging>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
</dependencies>
<configuration>
</project>
3、真正的依赖隐藏在这里
这个文件是超级长,3356行;大家往下翻一翻就会发现properties标签中定义了很多的版本信息;在dependencyManagement标签中定义了很多的maven依赖;这个标签标示子工程可以选择性的依赖儿不用填写版本信息;做到了父工程集中管理依赖的目的
<?xml version="1.0" encoding="utf-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<packaging>pom</packaging>
<name>Spring Boot Dependencies</name>
<description>Spring Boot Dependencies</description>
<url>https://projects.spring.io/spring-boot/#</url>
<properties>
<activemq.version>5.15.11</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.77</appengine-sdk.version>
<artemis.version>2.10.1</artemis.version>
<aspectj.version>1.9.5</aspectj.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
4、认识spring-boot-starter
大家应该有点印象吧,可以去自己编写的pom.xml文件中去看下,会发现spring-boot-starter这个玩意儿,它是几个意思?
spring-boot场景启动器,简单点说,帮助我们导包的;一般官方提供的包都是以它开头的。这也是springboot开发的方便之处,是一个高度封装。后面慢慢再啃。
5、刚认识的的starter
- 打开pom文件,还记得这个不,按下control点进去
<!-- springmvc相关jar包全部导入-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 这个文件不长,大家需要认真看下
发现1:发现它也有个爹,spring-boot-starters
发现2:它依赖了几个starter还有spring-web、spring-webmvc,继续点进去这两个看,你也许就理解spring-boot-starter了。
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starters</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.2.RELEASE</version>
<name>Spring Boot Web Starter</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.2.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.2.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.2.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.2.2.RELEASE</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>tomcat-embed-el</artifactId>
<groupId>org.apache.tomcat.embed</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
6、官方提供了哪些starter呢
- 打开这个页面,找到你需要的版本,点击对应的reference doc
- 打开如下页面,选择截图中的最后一个,Using Spring Boot
- 左侧1.5点击进去
- 这就是官方提供的
如果你想用其中一个,点击右侧的Pom超链接进入github,能看到这个starter是一个项目,复制它的3个坐标信息即可
7、总结
starter就是把特定的功能场景封装成单独的功能模块,哪个项目需要就直接依赖一下就OK