> 技术文档 > 【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤


文章目录

  • 前言
  • 一、系统要求
  • 二、修改Maven配置文件【必改】
  • 三、创建Maven工程
  • 四、引入依赖
    • 1、Maven配置pom.xml文件
    • 2、更新maven配置
  • 五、服务器配置端口
  • 六、编写代码
    • 1、创建主程序
    • 2、运行主程序
    • 3、编写与前端交互的业务程序
    • 4、前后端交互运行
  • 七、测试
  • 八、项目全局配置
    • 1、配置文件
  • 九、项目部署
    • 1、官方文档
    • 2、打包过程
    • 3、执行jar包
    • 4、在服务器执行
    • 5、jar包中都有什么
    • 6、注意事项
  • 十、所有源代码
    • Maven的安装路径下的setting.xml文件中新增(覆盖)
    • 依赖包pom.xml
    • 配置文件application.yml
    • 主程序MainApplication类
    • 业务程序controller.HelloController类
  • 总结
    • 1. 开发环境准备
    • 2. 项目搭建与依赖管理
    • 3. 服务器与代码实现
    • 4. 项目配置与测试
    • 5. 项目打包与部署
    • 6. 注意事项

前言

  • 整体官方文档:
    https://spring.io/projects/spring-boot#learn

  • Spring boot2参考官方文档:
    https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

一、系统要求

● Java 8 & 兼容java14 .
● Maven 3.3+
● idea 2019.1.2

确保自己安装的java版本和maven版本符号要求。
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

二、修改Maven配置文件【必改】

首先在cmd中,根据mvn -v的结果中复制maven的安装路径:

mvn -v

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
直接复制maven home的路径,在电脑路径中搜索。找到maven的配置文件。conf - setting

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
修改setting.xml文件,中和节点,如果已经有了,可以覆盖这两个节点。使用以下代码,调用阿里镜像。

<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public </mirror> </mirrors> <profiles> <profile>  <id>jdk-1.8</id>  <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk>  </activation>  <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  </properties> </profile> </profiles>

我是这样修改的:(绿色的是注释掉的)

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

三、创建Maven工程

1、新建项目

IDEA 2019及以上,File - new - project。我使用的是IDEA2023。
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

当前窗口打开。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
查看创建项目的maven版本符合要求。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

四、引入依赖

1、Maven配置pom.xml文件

pom中导入父工程:找到项目的父路径下的pom.xml进行配置,可以看到groupId和artifactId以及version已经默认有名称了,这个以前版本IDEA还需要手动输入设置名称,idea2023创建后已经默认有了,也可以手动重命名以及修改对应的pom文件中名称。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

<?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>com.hello</groupId> <artifactId>hello-boot2</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties></project>

我这里将包名称和配置文件中的名称改成hello。
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

2、更新maven配置

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

五、服务器配置端口

resources文件夹中右键新建文件,命名为Application.yml
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

文件中添加端口配置信息:

server: port: 8083 # 修改端口为 8083

六、编写代码

1、创建主程序

我们创建项目的时候,已经默认有个main类,其中有代码了,为了实现从0开始写起,我们将这个类进行备份后删除。

接下来我们在hello包中新建一个boot包,并在boot包中添加一个MainApplication类。

在hello包下新建一个MainApplication类。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

加上@SpringBootApplication注解和impot对应的包。以及对应的代码。

package com.hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * 主程序类 * @SpringBootApplication 这是一个SpringBoot应用 */@SpringBootApplicationpublic class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); // 拼接最终启动成功信息 String successMessage = \"🎉 **启动成功!** (ノ◕ヮ◕)ノ*:・゚✧\\n\" + \"✨ *服务已就绪,端口 8083* ✨\\n\" + \"💻 访问地址:`http://localhost:8083`\\n\" + \"💪 **Go! Go! Go!** (ง •_•)ง\"; System.out.println(successMessage); }}

2、运行主程序


运行成功

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
浏览器访问

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

3、编写与前端交互的业务程序

新建controller.HelloController类与前端交互。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

package com.hello.conroller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;//@ResponseBody // 类上加,表示该类下所有方法返回值作为响应体返回给浏览器//@Controller // 类上加,表示该类下所有方法都是控制器方法@RestController // 是@ResponseBody与@Controller的合并体public class HelloController { // @ResponseBody 单个方法的返回值作为响应体返回给浏览器 @RequestMapping(\"hello\") public String handle01(){ int a = 23; int b = 100; int c = a + b; return \"Hello, Spring Boot2 !\" + \"\\n\\n\" + c; }}

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

4、前后端交互运行

运行项目

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

浏览器给服务器输入一个值,hello,服务器返回值到浏览器中。

http://localhost:8083/hello

浏览器输入与返回值:

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

七、测试

直接运行Main方法就可以进行测试!

以上代码已经完成测试。
可以多写一些简单的输入输出,或者类、方法进行测试熟悉程序的运行过程、

八、项目全局配置

1、配置文件

我们前面在resourses里面新建了application.yml文件,也可以是application.properties文件,这两个文件都可以作为全局的所有内容的配置文件,比如我们就将端口设置放在这个配置文件中,整个spring boot2框架可以自动读取这个配置文件中的内容。

总之就是所有配置相关的都放在这个配置文件中。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
2、官方文档

官方文档中对应位置
https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/application-properties.html#appendix.application-properties

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

九、项目部署

1、官方文档

官方文档中对应位置

https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/executable-jar.html#appendix.executable-jar

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

2、打包过程

引用spring boot提供的插件,就可以将项目直接打包成一个jar包。这个jar包自带所有的运行环境。

我们来把这个插件引用到项目的maven配置文件pom.xml中。

 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

然后进行maven - clean - package进行打包。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

项目打包完成!

项目target中出现打包后的jar包。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

在文件夹中查看打包好的jar包。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

3、执行jar包

打开jar包所在的路径进行命令行操作。
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
输入dir

dir

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

停掉当前已经运行的后台程序,运行jar包中的程序。

输入java -jar jar包名称,按下回车,我这里文件名字是hello-boot2-1.0-SNAPSHOT.jar,所以输入的运行信息是:

java -jar hello-boot2-1.0-SNAPSHOT.jar

按下回车后项目在命令行中已经启动!!!

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

验证测试,在浏览器中运行与调用。没问题。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

4、在服务器执行

在服务器中执行与在本地cmd命令中执行类似。

5、jar包中都有什么

JAR 包(Java Archive) 是 Java 项目的压缩包,通常包含以下内容:

  1. 编译后的 .class 文件:Java 源代码编译后的字节码,JVM 直接执行这些文件。
  2. 资源文件:如配置文件(application.properties/application.yml)、图片、XML、HTML 等。
  3. 依赖库:项目所需的第三方库(JAR 包内的 lib 目录或通过 Maven/Gradle 管理的依赖)。
  4. 元数据META-INF/MANIFEST.MF 文件,描述 JAR 的属性(如主类入口、版本等)。

简短总结:JAR 包是 Java 应用的打包格式,封装了代码、资源、依赖和元数据,便于分发和运行。

【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤
【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

6、注意事项

  • 有的cmd运行不了,关掉快速编辑
    我的没有开启了这个属性也可以运行。
    【SpringBoot】03 基础入门 - 你的第一个SpringBoot工程从创建到部署全流程步骤

  • 每次添加maven依赖后,都要刷新一下。

十、所有源代码

Maven的安装路径下的setting.xml文件中新增(覆盖)

<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public </mirror> </mirrors> <profiles> <profile>  <id>jdk-1.8</id>  <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk>  </activation>  <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  </properties> </profile> </profiles>

依赖包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 http://maven.apache.org/xsd/maven-4.0.0.xsd\"> <modelVersion>4.0.0</modelVersion> <groupId>com.hello</groupId> <artifactId>hello-boot2</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties></project>

配置文件application.yml

server: port: 8083 # 修改端口为 8083

主程序MainApplication类

package com.hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * 主程序类 * @SpringBootApplication 这是一个SpringBoot应用 */@SpringBootApplicationpublic class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); // 拼接最终启动成功信息 String successMessage = \"🎉 **启动成功!** (ノ◕ヮ◕)ノ*:・゚✧\\n\" + \"✨ *服务已就绪,端口 8083* ✨\\n\" + \"💻 访问地址:`http://localhost:8083`\\n\" + \"💪 **Go! Go! Go!** (ง •_•)ง\"; System.out.println(successMessage); }}

业务程序controller.HelloController类

package com.hello.conroller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;//@ResponseBody // 类上加,表示该类下所有方法返回值作为响应体返回给浏览器//@Controller // 类上加,表示该类下所有方法都是控制器方法@RestController // 是@ResponseBody与@Controller的合并体public class HelloController { // @ResponseBody 单个方法的返回值作为响应体返回给浏览器 @RequestMapping(\"hello\") public String handle01(){ int a = 23; int b = 100; int c = a + b; return \"Hello, Spring Boot2 !\" + \"\\n\\n\" + c; }}

总结

本文全面介绍了 Spring Boot 2 项目从环境配置到部署的全流程,涵盖开发准备、依赖管理、代码实现、前后端交互、项目配置、打包部署等关键环节。以下是核心内容的总结:

1. 开发环境准备

  • 系统要求:Java 8 或兼容版本,Maven 3.3+,IDEA 2019+。
  • Maven 配置:修改 settings.xml,使用阿里云镜像加速依赖下载,并配置 JDK 版本(如 1.8)。

2. 项目搭建与依赖管理

  • 创建 Maven 工程:通过 IDEA 新建项目,选择合适的 Maven 版本。
  • 引入 Spring Boot 依赖:在 pom.xml 中配置 spring-boot-starter-parentspring-boot-starter-web,实现快速开发。

3. 服务器与代码实现

  • 端口配置:在 application.yml 中设置 server.port(如 8083)。
  • 主程序编写:使用 @SpringBootApplication 注解定义主类,启动 Spring Boot 应用。
  • 控制器开发:通过 @RestController@RequestMapping 实现前后端交互,返回 JSON 或文本数据。

4. 项目配置与测试

  • 全局配置:利用 application.ymlapplication.properties 管理端口、日志等配置。
  • 测试验证:直接运行主类,通过浏览器访问接口(如 http://localhost:8083/hello),验证功能。

5. 项目打包与部署

  • 打包插件:引入 spring-boot-maven-plugin,执行 mvn clean package 生成可执行 JAR。
  • JAR 包内容:
    • 编译后的 .class 文件(JVM 执行的核心代码)。
    • 资源文件(如配置文件、静态资源)。
    • 依赖库(通过 Maven/Gradle 管理的第三方 JAR)。
    • 元数据(META-INF/MANIFEST.MF,描述主类入口等信息)。
  • 部署运行:通过 java -jar xxx.jar 命令启动应用,支持本地或服务器部署。

6. 注意事项

  • 依赖刷新:每次修改 pom.xml 后,需刷新 Maven 依赖。
  • 命令行操作:若 CMD 无法运行,检查快速编辑模式或环境变量配置。

Spring Boot 2 通过 约定优于配置 的理念,简化了 Spring 应用的开发流程。从环境搭建到部署,开发者只需关注业务逻辑,无需处理复杂的配置。通过本文的指导,读者可以快速掌握 Spring Boot 项目的全流程开发,并灵活应用于实际项目中。