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 依赖,实现代码修改后自动重启。
相关推荐
JIngJaneIL2 小时前
基于java+ vue建筑材料管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
一 乐2 小时前
办公系统|基于springboot + vueOA办公管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
利刃大大2 小时前
【SpringBoot】SpringMVC && 请求注解详解 && 响应注解详解 && Lombok
java·spring boot·后端
她说..2 小时前
Spring AOP场景4——事务管理(源码分析)
java·数据库·spring boot·后端·sql·spring·springboot
李慕婉学姐3 小时前
Springboot面向电商的仓库管理系统05uc4267(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
pengkai火火火3 小时前
基于springmvc拓展机制的高性能日志审计框架的设计与实现
spring boot·安全·微服务·架构
原来是好奇心3 小时前
深入Spring Boot源码(八):高级特性与扩展点深度解析
java·源码·springboot
qq_12498707534 小时前
基于springboot框架的小型饮料销售管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·spring·毕业设计
Jaising6664 小时前
Spring 错误使用事务导致数据可见性问题分析
数据库·spring boot