当前位置: 首页 > news >正文

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 生成)

http://www.cnnetsun.cn/news/144620.html

相关文章:

  • Pydantic与Logfire集成实战:构建可观测的数据验证系统
  • 库早报|国内首例!全3D打印涡扇发动机试车成功;科锐智能SLS设备众筹上线;中国极地研究中心采购光固化机器
  • 如何在内网环境运行Open-AutoGLM?离线部署终极解决方案
  • 高效获取气体数据:科研与工业应用的终极指南
  • iOS 16.7设备支持包:解决Xcode调试难题的完整指南
  • 【AI本地化新突破】:Open-AutoGLM在Windows 11的3种部署方式大公开
  • 云原生网关Higress与Istio深度整合:构建端到端流量治理体系的完整指南
  • UI-TARS坐标定位精度优化:从像素偏差到亚像素精度的技术演进
  • Alpine Node.js Docker镜像终极指南:构建轻量级应用容器
  • LabelImg标注质量实战:从IOU计算到一致性检查的避坑指南
  • FaceFusion在智能门禁系统中的活体检测扩展应用
  • Bazel模块扩展实战:从依赖管理到构建生态的完整解决方案
  • Windows7系统必备:KB2999226补丁全面解析与安装指南
  • ControlNet终极指南:5个黄金法则实现AI绘画的精确控制
  • 网页设计模板网站 企业政务网页设计模板-专业的企业网站建设方案
  • Gboard词库Magisk模块:终极输入体验提升指南
  • 深入浅出现代C++内存模型
  • 如何从零部署eRPC:3步完成高性能RPC库配置
  • Sublime Text Markdown预览插件:让文档编写更高效
  • Stable Diffusion 3.5 FP8 多领域应用案例深度解析
  • 移动端AI模型部署实战:从性能瓶颈到极速推理的完整解决方案
  • Noi浏览器与豆包AI深度整合:一站式智能助手解决方案
  • 还在等官方API?现在就能本地运行AutoGLM-Phone-9B,完整安装流程曝光
  • 1、在 Mac 上运行 Windows:解锁新的计算可能性
  • 7、VMware Fusion:安装与使用指南
  • AJ-Report数据可视化大屏设计终极指南:从入门到精通完整教程
  • HikoGUI:现代C++ GUI框架的5大核心优势
  • 终极指南:face-alignment人脸对齐核心功能解析与实战应用
  • Open-AutoGLM核心技术揭秘(AutoGLM-Phone-9B模型获取与运行详解)
  • 快速上手OpenWebRX:浏览器收听全球无线电的终极指南