工具箱
不用翻课文找那三行配置:勾出你要的形态,读它下面写的代价,复制回自己的工程。控制台的每一条回答都来自浏览器里真实运行的 Java 内核。
只勾你这一课要用的那几项:勾得越多,越容易在启动阶段撞出不熟悉的报错——那不是生成器的错,是你提前遇到了真实工程。
产物
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version> <!-- 版本由 BOM 统管,子依赖不写 version -->
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>demo-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</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-validation</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>勾了这些,代价与理由在这里
parent继承 3.3.4 的 starter-parent 之后,所有 spring-boot-starter-* 都不用写版本号;一旦有人手写给某个 starter 加 version,就以那条为准——这是依赖版本漂移最常见的原因。
Web做接口就绕不开它: DispatcherServlet、内嵌 Tomcat、JSON 序列化全在这个 starter 里。
Validation给了 @Valid 才有人干活;漏掉它,@NotNull 会安静地什么也不校验。
生成器不替你思考:它把「这一行为什么存在」写在产物下面,复制之前请先读那几行。
这里没人给你划范围,全部命令都能敲。先 boot,再 beans,然后试着把 jdbcOnClasspath 关掉,看依赖链怎么一层层塌。
这里是一台真容器:Java 写的内核已经编译进浏览器。敲 help 看命令,或者直接点下面那颗按钮。
kernel:~$