news 2026/5/4 12:39:17

Spring Boot从入门到实战:快速搭建企业级应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot从入门到实战:快速搭建企业级应用

一、Spring Boot 核心优势:为何成为开发者首选?

Spring Boot 是 Spring 生态的 “脚手架”,核心目标是简化配置、提高开发效率,相比传统 Spring 有 3 大核心优势:

  1. 自动配置(AutoConfiguration):根据依赖自动注入 Bean,无需手动编写 XML 或 Java 配置(如引入spring-boot-starter-web自动配置 Tomcat、Spring MVC);
  2. 起步依赖(Starter Dependencies):整合常用依赖(如spring-boot-starter-mybatis包含 MyBatis+Spring 整合所需所有 jar),避免版本冲突;
  3. 嵌入式服务器:内置 Tomcat、Jetty,无需部署 WAR 包,直接运行 JAR 文件;
  4. 无代码生成 + 零 XML 配置:纯 Java 配置,开箱即用。

二、环境准备(2024 最新版)

工具

版本要求

JDK

8/11/17(推荐 17,LTS 版本)

Maven/Gradle

Maven 3.6+ / Gradle 7.0+

IDE

IntelliJ IDEA 2022+ / Eclipse 2023+

Spring Boot

3.2.x(稳定版)

注意:Spring Boot 3.x 仅支持 JDK 17+,若使用 JDK 8 需选择 Spring Boot 2.7.x 版本。

三、快速搭建:第一个 Spring Boot 应用(3 种方式)

方式 1:Spring Initializr(推荐,可视化配置)
  1. 访问官网:https://start.spring.io/
  2. 配置参数:
    • Project:Maven/Gradle
    • Language:Java
    • Spring Boot:3.2.5
    • Group:com.example(包名)
    • Artifact:demo(项目名)
    • Dependencies:勾选「Spring Web」(web 开发核心依赖)
  1. 点击「Generate」下载压缩包,解压后用 IDEA 打开。
方式 2:IDEA 内置工具(更高效)
  1. 打开 IDEA → New Project → Spring Initializr
  2. 填写 Group/Artifact,选择 Spring Boot 版本和依赖(同方式 1)
  3. 点击 Finish,IDEA 自动下载依赖并创建项目。
方式 3:手动创建(理解底层结构)
  1. 新建 Maven 项目,在pom.xml中添加 Spring Boot 父依赖和 web 起步依赖:

统一管理版本和依赖 -->

<groupId>org.springframework.boot</groupId>

>spring-boot-starter-parent</artifactId>

<version>3.2.5 <relativePath/>

</parent>

依赖:自动引入Tomcat、Spring MVC等 -->

<dependencies>

<dependency>

<groupId>org.springframework.boot>

spring-boot-starter-web</artifactId>

>

将项目打包为可执行JAR -->

>

</groupId>

<artifactId>spring-boot-maven-plugin </plugin>

</plugins>

  1. 创建启动类(必须在所有业务类的父包下):

package com.example.demo;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

// 核心注解:包含@ComponentScan(扫描Bean)、@EnableAutoConfiguration(自动配置)

@SpringBootApplication

public class DemoApplication {

public static void main(String[] args) {

// 启动Spring Boot应用

SpringApplication.run(DemoApplication.class, args);

}

}

  1. 创建 Controller 测试:

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 {

// 接收GET请求,路径为/hello

@GetMapping("/hello")

public String hello() {

return "Hello Spring Boot 3.2!";

}

}

四、运行与测试

  1. 启动应用:右键DemoApplication→ Run(IDEA 会自动启动内置 Tomcat,默认端口 8080);
  2. 测试接口:
    • 浏览器访问:http://localhost:8080/hello
    • Postman 访问:GET 请求上述地址
  1. 成功响应:页面显示Hello Spring Boot 3.2!

五、实战进阶:整合核心组件(企业级常用)

1. 配置文件:application.yml(推荐,简洁易读)

Spring Boot 默认支持application.propertiesapplication.yml,推荐后者,在src/main/resources下创建:

# 服务器配置

server:

port: 8081 # 修改端口(避免冲突)

servlet:

context-path: /demo # 项目前缀(访问需加/demo)

# 自定义配置(可通过@Value注入)

app:

name: SpringBootDemo

version: 1.0.0

2. 整合 MyBatis(操作数据库)
  1. 添加依赖(pom.xml):

atis起步依赖 -->

<dependency>

>org.mybatis.spring.boot</groupId>

>mybatis-spring-boot-starter 0.3

</dependency>

MySQL驱动(Spring Boot 3.x需8.0+) -->

>

com.mysql

-connector-j

</scope>

>

  1. 配置数据库连接(application.yml):

spring:

datasource:

url: jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true

username: root

password: 123456

driver-class-name: com.mysql.cj.jdbc.Driver

# MyBatis配置

mybatis:

mapper-locations: classpath:mapper/*.xml # Mapper.xml文件路径

type-aliases-package: com.example.demo.entity # 实体类别名包

  1. 编写实体类、Mapper 接口和 XML 文件(示例略,核心是 MyBatis 的常规用法,Spring Boot 自动整合无需额外配置)。
3. 全局异常处理

创建全局异常处理器,统一捕获项目中的异常:

package com.example.demo.exception;

import org.springframework.web.bind.annotation.ExceptionHandler;

import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.util.HashMap;

import java.util.Map;

// 全局异常处理:作用于所有@RestController

@RestControllerAdvice

public class GlobalExceptionHandler {

// 捕获RuntimeException

@ExceptionHandler(RuntimeException.class)

public Map, Object> handleRuntimeException(RuntimeException e) {

Map> result = new HashMap();

result.put("code", 500);

result.put("message", e.getMessage());

return result;

}

}

六、常见问题与解决方案

问题现象

解决方案

端口占用(Port 8080 in use)

1. 关闭占用端口的进程;2. 在 application.yml 中修改 server.port

依赖冲突(NoClassDefFoundError)

排除冲突依赖(如通过标签)或升级 Spring Boot 版本

自动配置失效

1. 检查依赖是否正确引入;2. 确保启动类在父包下(@ComponentScan 扫描范围)

数据库连接失败

1. 检查 MySQL 服务是否启动;2. 验证 url、用户名、密码是否正确

七、总结与扩展

Spring Boot 的核心是 “约定优于配置”,通过起步依赖和自动配置减少重复工作,让开发者专注于业务逻辑。本文仅覆盖基础用法,后续可扩展学习:

  1. 整合 Redis、RabbitMQ 等中间件;
  2. 配置 Spring Security 实现权限控制;
  3. 使用 Spring Boot Actuator 监控应用;
  4. 打包部署(Docker 容器化、云服务器部署)。

如果本文对你有帮助,欢迎点赞 + 收藏!有任何问题或补充,欢迎在评论区交流~

(注:文档部分内容可能由 AI 生成)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 21:54:23

FaceFusion能否用于罪犯模拟画像生成?公安刑侦辅助工具

FaceFusion能否用于罪犯模拟画像生成&#xff1f;公安刑侦辅助工具 在城市监控摄像头数量突破亿级的今天&#xff0c;破案的关键往往不再是没有线索&#xff0c;而是如何从成千上万帧模糊画面、零碎片段和目击者模糊描述中还原出一个“真实可辨”的人脸。尤其是在跨省流窜作案、…

作者头像 李华
网站建设 2026/5/3 9:19:31

为什么你的安卓 14 手机跑不动 Open-AutoGLM?真相只有一个

第一章&#xff1a;为什么你的安卓 14 手机跑不动 Open-AutoGLM&#xff1f;真相只有一个许多用户在尝试将开源大模型 Open-AutoGLM 部署到安卓 14 设备时&#xff0c;发现应用频繁崩溃或根本无法启动。问题的核心并非模型本身&#xff0c;而是安卓系统权限机制与本地推理运行时…

作者头像 李华
网站建设 2026/4/22 1:22:08

Windows 10开始菜单终极修复指南:微软官方工具一键解决

Windows 10开始菜单无法打开&#xff1f; 您并不孤单&#xff01;这是许多Win10用户都会遇到的常见问题。幸运的是&#xff0c;微软官方提供了一款轻量级修复工具——Windows 10 Start Menu TroubleShooter&#xff0c;能够快速检测并修复开始菜单故障。这款仅398KB的单文件工具…

作者头像 李华
网站建设 2026/4/30 1:36:38

Flutter炫酷UI设计终极指南:10+精美界面模板一键集成

Flutter炫酷UI设计终极指南&#xff1a;10精美界面模板一键集成 【免费下载链接】awesome-flutter-ui 10 flutter(android, ios) UI design examples :zap: - login, books, profile, food order, movie streaming, walkthrough, widgets 项目地址: https://gitcode.com/gh_m…

作者头像 李华
网站建设 2026/5/2 20:27:58

失业期PHP程序员所有的心魔和恐惧其实都是纸老虎的知识体系

“失业期PHP程序员所有的心魔和恐惧其实都是纸老虎。” 这完全正确。真正束缚我们的&#xff0c;往往不是技术本身&#xff0c;而是由未知、不确定性和自我怀疑编织成的内心幻象。 让我们来系统性地拆解这些“纸老虎”&#xff0c;把恐惧还原为可以解决的具体问题。 核心认知&a…

作者头像 李华