Spring Boot入门教程

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:官方脚手架下载

  1. 访问 Spring Boot 官方脚手架:http://start.spring.io/;
  2. 选择构建工具(Maven Project)、Spring Boot 版本、项目基本信息(Group/Artifact);
  3. 点击 "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(可选)

  1. 访问 Banner 生成网站:http://www.bootschool.net/ascii;
  2. 生成自定义字符画,保存为 banner.txt 放入 resources 目录;
  3. 启动项目,控制台会显示自定义 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 核心原理、数据源配置、事务管理等进阶内容,敬请关注!

相关推荐
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 项目:需求分析与滑动数据设计
java·开发语言·交友
前端 贾公子5 小时前
第 5 章:Codex 从可运行程序到可交付工具
java·前端·数据库
CoderYanger6 小时前
Java EE 进阶:5. Spring IoC&DI(第三弹):Spring DI
java·开发语言·spring boot·spring·面试·java-ee·mvc
Thneonl6 小时前
Claude Code 频繁 Compacting?发布次日我根治了 2 个痛点
后端·rust
一条泥憨鱼6 小时前
【Kafka】零基础学习教程
java·分布式·学习·kafka
Wang's Blog6 小时前
Java 项目实战:交友项目 - 即时通信总结:全链路复盘、可复用清单与自检
java·python·交友
文丑颜不良啊6 小时前
LeetCode1501~1520题目解析
java·leetcode
长不大的杨瑞杰7 小时前
OpenCode v2 LSP 实战:内置语言服务器、自定义配置与诊断闭环
java·人工智能·typescript·lsp·opencode
云和数据.ChenGuang7 小时前
python和java的try
java·开发语言·python
日日大王学编程7 小时前
阿里巴巴开源 Data Agent(Text2SQL)项目全维度详解
java·ai·开源