小架构step系列02:搭建工程
1 概述
对于技术学习,比较好的方式,先不管懂不懂,找个例子先跑起来再来慢慢学习细节。所以这里先建一个工程,先完成标志性的“Hello World”。
2 搭建过程
2.1 前提
假定已经安装好java、编译工具和写代码的IDE,如果这些不清楚的话可以单独到网上搜索。
这里的例子采用的是:
- JDK:1.8
- Maven:3.3.9
- IDE:IntelliJ IDEA (Community Edition)
对于一个简单的例子来说,上面三个可以选最新的版本都不受影响,一些详细的知识在后面的文章再详细介绍如何选择。
2.2 使用Spring工具搭建
2.2.1 生成工程
spring提供了一个搭建工具,使得工程搭建更加容易。先访问 https://start.spring.io/ ,得到下面的界面:

这个功能没有支持比较老的版本,比如jdk最小支持的是17,没有支持jdk 1.8。不过没有关系,可以直接用新的,也可以呆会调整一下。下面说明一下各个字段的意思:
- Project:指定工程的类型,maven类型的一般用maven来编译,目录结构也使用src/main/java这种源码目录,使用pom.xml文件记录依赖;同理,gradle也对应gradle的规则。
- Language:代码语言,Java就是使用Java语言;Kotlin、Groovy都是可以运行在Java虚拟机上的Java体现的语言。
- SpringBoot:选择SpringBoot的版本,其和Java版本匹配即可;
- Project Metadata:工程的信息,一般需要填Group、Artifact、Name信息,Group和Artifact共同唯一确定一个jar的唯一标识。Description属于描述,可以随意定;Package Name则会自动根据Group和Artifact生成,当然也可以自定义修改成别的形式。
- Packaging:最终代码打包成什么格式,war包含整个项目的配置文件、代码、静态文件、依赖包等,jar包则没有带静态文件,在前后端分离的今天,jar就基本可以了。
- Java:选择jdk的版本。到2024年,Java 17、11 和 8 的用户比例分别为 35%、33% 和 29%,相差并不大,Java新版本的发布速度也加快了很多,Java 21在2023年9月发布了,Java 24在2025年3月发布了。
点击右侧的“Add Dependencies”可以增加Spring的依赖,这次是个Hello World例子,还用不到这些具体的依赖,就先不选了。
点击下发的“Generate”或“Explore”按钮,生产工程并下载下来,解压后的目录如下:

src目录就把包所对应的各个目录都生成了:
- src- main- java- com- qqian- stepfmk- srvpro- SrvproApplication.java- resources- application.properties- test- java
另外一个重要的文件是pom.xml:
<?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.11</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.qqian.stepfmk</groupId><artifactId>srvpro</artifactId><version>0.0.1-SNAPSHOT</version><name>srvpro</name><description>Step by step to construct service</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
从上面可以看到,已经在<parent>节点选上了指定版本的springboot,在依赖<dependencies>节点中也加上了spring-boot-starter和spring-boot-starter-test,在<build>节点中指定了maven编译插件。
而<groupId>、<artifactId>、<version>则指定了本工程的唯一标识,<name>和<description>则用于展示。
<licenses>可以补充license说明,<developers>可以指定开发者信息,<scm>可以指定版本管理信息,也可以不用管它们。
2.2.2 修改版本
使用spring工具的时候,指定了springboot和jdk的版本,如果里面没有自己要的版本,那么工程生成之后可以修改一下。
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version><relativePath/>
</parent>
可以在Maven仓库里找合适的版本:Central Repository:org/springframework/boot/spring-boot-starter-parent/
比如这里找的是支持JDK8的最后一个版本:2.7.18。
JDK的版本在pom.xml文件中只需要改节点里的即可。
JDK的版本需要在IDE中修改,以IDEA为例:
- 更改全局编译器:File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode version,如果要选Java1.8则选8,其它的按需要选择。
- 更改工程编码语言:File -> Project Structure -> Modules -> 当前工程 -> Language Level,如果要选Java1.8则选8,其它的按需要选择。
2.3 手工搭建
通过工具搭建之后,如果想了解一下细节,那也可以手工搭建一下,理解一下里面的原理。
2.3.1 POM文件
Maven工程是通过pom.xml文件来管理的,所以在建一个工程空的文件夹后,第一步就先加pom.xml文件。
pom.xml的内容可以抄上面的,重点抄下面几个节点即可:
<?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"><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version></parent><groupId>com.qqian.stepfmk</groupId><artifactId>srvpro</artifactId><version>1.0.0-SNAPSHOT</version><name>srvpro</name><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
2.3.2 源码目录
标准的目录结构为:
- src- main- java- resources- application.properties- test- java
其中:
- main/java是主要放源码的目录,平时所说的包路径的根目录就在这个目录,从这个目录(不含)开始来定包路径;
- main/resources是放配置文件的目录,在这个目录下符合一定规则的配置文件会被springboot自动加载;
- test/java则是写测试代码的目录。
把工程引入到IDEA里,然后在src/main/java目录下右键,选择菜单New -> Package,创建包:com.qqian.stepfmk.srvpro

创建完之后,在src/main/java/com/qqian/stepfmk/srvpro目录下右键,选择菜单New -> Java class,建一个带main方法的启动类:SrvproApplication
@SpringBootApplication
public class SrvproApplication {public static void main(String[] args) {SpringApplication.run(SrvproApplication.class, args);}
}
其中使用@SpringBootApplication注解可以节省引多个注解。
2.4 运行
抄一下SpringBoot官方的例子: Getting Started | Building an Application with Spring Boot ,替换一下SrvproApplication里的代码:
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;@SpringBootApplication
public class SrvproApplication {public static void main(String[] args) {SpringApplication.run(SrvproApplication.class, args);}@Beanpublic CommandLineRunner commandLineRunner(ApplicationContext ctx) {return args -> {System.out.println("Hello World");};}
}
在IDEA中代码区域,右键选菜单Run,可以看到在Console里打印出Hello World:
Starting SrvproApplication on DESKTOP-TEQFED1 with PID 34556
No active profile set, falling back to default profiles: default
Started SrvproApplication in 1.266 seconds (JVM running for 2.33)
Hello World
3 架构一小步
建一个Java工程,编写pom.xml文件指定依赖,创建代码和配置文件的目录,建一个带main方法的启动文件,即可以完成最简单的工程搭建。
可以使用Spring官网提供的工具来代替手工创建,平时搭建时,这种机械的工作应该留给工具,但如果想了解原理则手工搭建印象更加深刻。