Spring Boot ——入门与实战

目录

一、核心优势

[二、快速入门(创建第一个 Spring Boot 项目)](#二、快速入门(创建第一个 Spring Boot 项目))

[1. 环境准备](#1. 环境准备)

[2. 创建项目(3 种方式)](#2. 创建项目(3 种方式))

[方式 1:Spring Initializr(官方脚手架)](#方式 1:Spring Initializr(官方脚手架))

[方式 2:IDEA 直接创建](#方式 2:IDEA 直接创建)

[方式 3:手动搭建(了解核心结构)](#方式 3:手动搭建(了解核心结构))

[3. 编写核心代码](#3. 编写核心代码)

主启动类(必须)

控制器(测试接口)

[4. 运行与访问](#4. 运行与访问)

三、核心配置

[1. 配置文件类型](#1. 配置文件类型)

[2. 基础配置示例(application.yml)](#2. 基础配置示例(application.yml))

[3. 读取配置的方式](#3. 读取配置的方式)

[方式 1:@Value 注解](#方式 1:@Value 注解)

[方式 2:@ConfigurationProperties(批量读取)](#方式 2:@ConfigurationProperties(批量读取))

四、常用功能模块

五、打包与部署

[1. 打包为可执行 JAR](#1. 打包为可执行 JAR)

[2. 部署到服务器](#2. 部署到服务器)

六、关键注解说明

七、常见问题与解决方案


Spring Boot 是由 Pivotal 团队开发的基于 Spring 框架的快速开发脚手架,核心目标是简化 Spring 应用的搭建、配置和部署,通过 "约定优于配置" 的理念,让开发者专注于业务逻辑而非繁琐的配置。

一、核心优势

  1. 自动配置 :根据项目依赖自动配置 Spring 组件(如引入 spring-boot-starter-web 自动配置 MVC、Tomcat 等);
  2. 起步依赖 :将常用依赖打包成 starter(如 spring-boot-starter-data-jpaspring-boot-starter-test),简化 pom.xml/gradle 配置;
  3. 内嵌服务器:默认内嵌 Tomcat/Jetty/Undertow,无需手动部署 WAR 包;
  4. 简化部署 :可打包为可执行 JAR 包,直接通过 java -jar 运行;
  5. 监控与管理:内置 Actuator 模块,可监控应用健康状态、指标等;
  6. 无代码生成 / XML 配置:完全基于注解,零 XML 配置(可选保留)。

二、快速入门(创建第一个 Spring Boot 项目)

1. 环境准备

  • JDK 8+(推荐 11/17,Spring Boot 3.x 要求 JDK 17+);
  • Maven/Gradle(构建工具);
  • IDE(IntelliJ IDEA/Eclipse,IDEA 推荐)。

2. 创建项目(3 种方式)

方式 1:Spring Initializr(官方脚手架)
  1. 访问 start.spring.io
  2. 配置:
    • Project:Maven/Gradle;
    • Language:Java;
    • Spring Boot Version:选择稳定版(如 3.2.x);
    • Group/Artifact:项目坐标(如 com.example/demo);
    • Dependencies:添加 Spring Web(Web 开发);
  3. 点击 Generate 下载项目压缩包,解压后导入 IDE。
方式 2:IDEA 直接创建
  1. IDEA → New Project → Spring Initializr;
  2. 填写上述配置,自动生成项目结构。
方式 3:手动搭建(了解核心结构)

xml

复制代码
<!-- pom.xml 核心依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.0</version>
    <relativePath/>
</parent>

<dependencies>
    <!-- Web 起步依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 测试依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<!-- 打包为可执行 JAR -->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

3. 编写核心代码

主启动类(必须)

java

运行

复制代码
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// 核心注解:组合了 @Configuration + @EnableAutoConfiguration + @ComponentScan
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        // 启动 Spring Boot 应用
        SpringApplication.run(DemoApplication.class, args);
    }
}
控制器(测试接口)

java

运行

复制代码
package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

// 组合 @Controller + @ResponseBody,返回 JSON/字符串而非视图
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello Spring Boot!";
    }
}

4. 运行与访问

  • 直接运行 DemoApplication 类的 main 方法;
  • 浏览器访问 http://localhost:8080/hello,即可看到返回结果。

三、核心配置

1. 配置文件类型

Spring Boot 支持多种配置文件,优先级:properties < yml < yaml(推荐 yml,更简洁)。

  • 默认路径:src/main/resources/application.yml(或 application.properties);
  • 多环境配置:application-dev.ymlapplication-prod.yml

2. 基础配置示例(application.yml)

yaml

复制代码
# 服务器配置
server:
  port: 8080          # 端口
  servlet:
    context-path: /demo  # 上下文路径

# Spring 配置
spring:
  # 多环境激活(dev/prod/test)
  profiles:
    active: dev
  # 数据源配置(以 MySQL 为例)
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

# 自定义配置(可通过 @Value 或 @ConfigurationProperties 读取)
custom:
  name: Spring Boot
  version: 3.2.0

3. 读取配置的方式

方式 1:@Value 注解

java

运行

复制代码
@RestController
public class ConfigController {
    // 读取自定义配置
    @Value("${custom.name}")
    private String name;

    @Value("${custom.version}")
    private String version;

    @GetMapping("/config")
    public String getConfig() {
        return "Name: " + name + ", Version: " + version;
    }
}
方式 2:@ConfigurationProperties(批量读取)

java

运行

复制代码
@Component
@ConfigurationProperties(prefix = "custom") // 配置前缀
public class CustomConfig {
    private String name;
    private String version;

    // 生成 getter/setter
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getVersion() { return version; }
    public void setVersion(String version) { this.version = version; }
}

四、常用功能模块

Spring Boot 提供了丰富的 starter 依赖,覆盖主流开发场景:

功能场景 核心依赖(starter)
Web 开发 spring-boot-starter-web
数据库访问 spring-boot-starter-data-jpa/MyBatis
数据库连接 spring-boot-starter-jdbc
缓存 spring-boot-starter-cache(+ Redis/Ehcache)
安全认证 spring-boot-starter-security
消息队列 spring-boot-starter-amqp(RabbitMQ)
监控运维 spring-boot-starter-actuator
模板引擎 spring-boot-starter-thymeleaf
测试 spring-boot-starter-test

五、打包与部署

1. 打包为可执行 JAR

bash

运行

复制代码
# Maven 打包(项目根目录执行)
mvn clean package

# 运行打包后的 JAR
java -jar target/demo-0.0.1-SNAPSHOT.jar

# 指定环境运行
java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

2. 部署到服务器

  • 将 JAR 包上传到服务器;
  • 通过 nohup java -jar demo.jar & 后台运行(避免终端关闭停止);
  • 可配合 systemd 配置成系统服务,实现开机自启。

六、关键注解说明

注解 作用
@SpringBootApplication 核心注解,组合 @Configuration + @EnableAutoConfiguration + @ComponentScan
@RestController 标记控制器,返回 JSON / 字符串(替代 @Controller + @ResponseBody)
@GetMapping/@PostMapping 简化请求映射(替代 @RequestMapping (method=RequestMethod.GET))
@Autowired 自动注入依赖(按类型)
@Component/@Service/@Repository 标记组件,纳入 Spring 容器管理(分层注解)
@Configuration 标记配置类(替代 XML 配置)
@Bean 声明 Bean 实例,放入 Spring 容器

七、常见问题与解决方案

  1. 端口被占用 :修改 server.port 为未占用端口(如 8081);
  2. 依赖冲突 :通过 mvn dependency:tree 分析依赖,排除冲突包;
  3. 配置文件不生效 :检查文件路径、名称是否正确(如 application.yml 拼写错误);
  4. 启动失败(数据源错误):检查数据库地址、用户名、密码是否正确,数据库是否启动;
  5. 热部署 :添加 spring-boot-devtools 依赖,实现代码修改后自动重启。
相关推荐
追梦者1231 小时前
springboot整合minio
java·spring boot·后端
帅气的你1 小时前
Spring Boot 集成 AOP 实现日志记录与接口权限校验
java·spring boot
计算机毕设VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue在线音乐播放系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
计算机毕设VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue博物馆展览与服务一体化系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
帅气的你2 小时前
Spring Boot 1.x 接口性能优化:从 3 秒到 200 毫秒的实战调优之路
java·spring boot
yangminlei3 小时前
Spring Boot/Spring MVC核心注解深度解析
spring boot
goodlook01233 小时前
监控平台搭建-日志-springboot直接推送loki篇(九)
java·spring boot·后端·grafana
czlczl200209253 小时前
从 SSO 登录到跨系统资源访问:OAuth2 全链路交互详解
java·spring boot·后端·spring·架构
我爱娃哈哈4 小时前
SpringBoot + Aviator + 规则中心:轻量级表达式引擎实现营销优惠动态计算
java·spring boot·后端