news 2026/7/13 17:41:35

Spring Boot ——入门与实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot ——入门与实战

目录

一、核心优势

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

1. 环境准备

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

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

方式 2:IDEA 直接创建

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

3. 编写核心代码

主启动类(必须)

控制器(测试接口)

4. 运行与访问

三、核心配置

1. 配置文件类型

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

3. 读取配置的方式

方式 1:@Value 注解

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

四、常用功能模块

五、打包与部署

1. 打包为可执行 JAR

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依赖,实现代码修改后自动重启。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 12:23:42

Spring Boot 自动配置的底层实现原理

目录 一、核心前置知识 二、自动配置的完整底层流程 1. 触发入口&#xff1a;SpringBootApplication 注解 2. 配置类加载&#xff1a;AutoConfigurationImportSelector 核心逻辑 步骤 1&#xff1a;读取自动配置类清单&#xff08;核心文件&#xff09; 步骤 2&#xff1…

作者头像 李华
网站建设 2026/7/13 12:23:40

AI如何帮你快速掌握Wireshark端口过滤技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Wireshark端口过滤助手应用&#xff0c;能够根据用户输入的关键词&#xff08;如HTTP流量、SSH连接&#xff09;自动生成对应的过滤表达式。应用应支持常见协议端口号的智能…

作者头像 李华
网站建设 2026/7/13 12:23:39

手把手教你复现CVE-2023-51767漏洞

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成一个CVE-2023-51767漏洞复现实验手册&#xff0c;包含&#xff1a;1) 所需实验环境&#xff08;虚拟机配置、软件版本&#xff09;&#xff1b;2) 分步骤的漏洞触发流程&#x…

作者头像 李华
网站建设 2026/7/10 8:09:19

雷柏V500Pro键盘新手必看:5分钟搞定基础设置

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式雷柏V500Pro键盘新手教学应用。功能&#xff1a;1. 分步图文指导 2. 3D键盘模型展示 3. 设置检查功能 4. 常见问题解答 5. 视频教程嵌入。使用HTML5CSS3实现响应式设…

作者头像 李华
网站建设 2026/7/13 20:04:20

Java小白必看:5分钟上手MD5加密解密

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个面向Java初学者的MD5教学项目&#xff0c;要求&#xff1a;1. 分步骤实现MD5加密&#xff08;从MessageDigest初始化到结果转换&#xff09;&#xff1b;2. 每个步骤都有详…

作者头像 李华