02 SpringBoot入门程序剖析之各种稀奇古怪的starter

    技术2025-10-15  5

    入门程序配置解析

    大家在查看的时候可以通过目录跳转,配置文件我全给复制过来了,后来卡的不行,删了很多,大家重点知道方法就行,你电脑上的和我的没有区别,等往后多学点再回头看就知道啥子意思了;别看眼花了。哈哈哈

    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

    Processed: 0.011, SQL: 9