Spring Boot 作为当下最流行的 Java 开发框架之一,以其 "约定优于配置" 的理念,极大简化了 Spring 应用的开发流程。本文将从 Spring Boot 基础介绍入手,一步步教你搭建项目、编写 HelloWorld 程序、配置全局文件,以及最终的项目发布,全程干货,新手友好!
一、Spring Boot 核心介绍
1.1 什么是 Spring Boot
Spring Boot 是 Pivotal 团队推出的全新框架,"Boot" 意为 "引导",它并非对 Spring 功能的增强,而是提供了一种快速开发 Spring 应用的方式,让开发者摆脱繁杂的配置,专注于业务逻辑。
1.2 Spring Boot 核心特点
- 嵌入式 Servlet 容器:内置 Tomcat/Jetty/Undertow,无需打包成 WAR 文件部署;
- 简化 Maven 配置:通过 "starter" 启动器一键导入所需依赖,无需手动管理 jar 包;
- 自动配置:提供大量自动配置类,零 XML 配置即可实现 Spring 核心功能;
二、快速构建 Spring Boot 项目
Spring Boot 项目有两种主流构建方式:通过官方脚手架下载、手动搭建 Maven 工程,以下是详细步骤。
2.1 方式 1:官方脚手架下载
- 访问 Spring Boot 官方脚手架:http://start.spring.io/;
- 选择构建工具(Maven Project)、Spring Boot 版本、项目基本信息(Group/Artifact);
- 点击 "GENERATE" 下载项目压缩包,解压即可使用。
2.2 方式 2:手动搭建 Maven 工程
步骤 1:创建空 Maven 工程
- 新建 Maven 工程,不使用骨架;
- 填写项目坐标(GroupId/ArtifactId/Version);
- 设置项目本地保存路径。
步骤 2:配置 pom.xml
(1)继承 Spring Boot 父工程
父工程提供了依赖版本管理,避免版本冲突:
XML
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- 从仓库查找父工程 -->
</parent>
(2)设置编码格式
XML
<!-- 项目源码及编译输出的编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
(3)添加 Web 启动器
引入 spring-boot-starter-web,自动导入 Web 开发所需依赖(Tomcat + Spring MVC 等):
XML
<dependencies>
<!-- Spring Boot Web 启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
步骤 3:创建启动类
启动类是 Spring Boot 项目的入口,需添加 @SpringBootApplication 注解:
java
package com.hg;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.3 核心概念:Spring Boot Starter
(1)Starter 解决的问题
- 依赖混乱:手动导入 jar 包易出错、难管理;
- 配置繁琐:重复配置数据库、事务、Web 等环境,降低开发效率。
(2)Starter 是什么?
Starter 是 Spring Boot 封装的 "功能场景包",引入一个 Starter,即可自动导入该场景下的所有依赖 + 自动配置环境。例如:
spring-boot-starter-web:全栈 Web 开发(Tomcat + Spring MVC);spring-boot-starter-jpa:JPA 操作数据库;spring-boot-starter-redis:Redis 操作;
(3)Starter 命名规范
- 官方 Starter:
spring-boot-starter-模块名(如spring-boot-starter-web); - 第三方 Starter:
模块名-spring-boot-starter(如mybatis-spring-boot-starter)。
三、入门案例:HelloWorld
3.1 编写 Controller
创建控制器类,实现简单的接口返回:
java
package com.hg.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
@Controller
public class HelloWorld {
@RequestMapping("/hello")
@ResponseBody
public Map<String, Object> hello() {
Map<String, Object> map = new HashMap<>();
map.put("msg", "HelloWorld");
return map;
}
}
3.2 启动类位置要求
启动类需放在 Controller 同包 / 上一级包 下,否则无法扫描到 Controller:
java
com.hg
├── Application.java (启动类)
└── controller
└── HelloWorld.java (控制器)
3.3 自定义启动 Banner(可选)
- 访问 Banner 生成网站:http://www.bootschool.net/ascii;
- 生成自定义字符画,保存为
banner.txt放入resources目录; - 启动项目,控制台会显示自定义 Banner。
四、全局配置文件
Spring Boot 提供全局配置文件(application.properties/application.yml),用于修改框架默认配置,默认放在 resources 目录下。
4.1 properties 格式
(1)修改 Tomcat 端口
java
server.port=8888
2)修改项目访问路径
java
server.servlet.context-path=/springboot
4.2 yml 格式(推荐)
yml 是树状结构配置文件,语法更简洁,注意:
- 用
:分割键值对,冒号后必须加空格; - 缩进用空格(禁止 Tab),左对齐为同一层级。
配置示例
java
server:
port: 8090
servlet:
context-path: /springboot
五、项目发布方式
Spring Boot 支持两种发布方式:Jar 包(内置容器)、War 包(部署到外部 Tomcat)。
5.1 方式 1:Jar 包发布(推荐)
步骤 1:添加打包插件
在 pom.xml 中添加 Spring Boot 打包插件:
XML
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
步骤 2:打包
- 打开 Maven 视图,执行
package命令; - 打包完成后,
target目录下生成xxx.jar包。
步骤 3:运行 Jar 包
打开终端,执行命令:
bash
java -jar xxx.jar
5.2 方式 2:War 包发布
步骤 1:修改打包类型
XML
<packaging>war</packaging>
步骤 2:排除内置 Tomcat 依赖(避免冲突)
XML
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope> <!-- 仅编译时有效 -->
</dependency>
步骤 3:自定义 War 包名称
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>hello</warName> <!-- 自定义war包名 -->
</configuration>
</plugin>
步骤 4:修改启动类
继承 SpringBootServletInitializer,重写 configure 方法:
java
package com.hg;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
步骤 5:打包并部署
- 执行
package打包,生成hello.war; - 将 War 包放入外部 Tomcat 的
webapps目录,启动 Tomcat 即可。
总结
本文从 Spring Boot 基础概念到实战操作,覆盖了项目搭建、核心配置、入门案例、项目发布全流程。Spring Boot 的核心优势是 "简化配置、快速开发",掌握本文内容,即可快速上手 Spring Boot 开发。后续还会分享 Spring Boot 核心原理、数据源配置、事务管理等进阶内容,敬请关注!