很多初学Java开发的小伙伴,在使用原生Spring、SpringMVC开发企业项目时,都会被繁琐的配置折磨:海量XML配置文件、手动导入各类依赖、繁琐的服务器配置、版本冲突问题频发。
而 Spring Boot 的诞生,就是为了解决Spring框架的配置冗余、开发繁琐的痛点,核心宗旨就是简化配置、快速开发、开箱即用,如今已是Java企业级开发的主流框架。

本篇文章将从零带大家入门Spring Boot,详解核心优势、环境搭建、配置文件、Starter依赖、自动配置原理,最后实战开发第一个RESTful接口,零基础也能快速上手!
一、Spring Boot 核心优势(为什么企业都在用?)
Spring Boot 基于 Spring 框架开发,并非替代Spring,而是对Spring的增强和简化,核心优势集中在两点,完美适配企业快速迭代开发场景:
1.1 极简配置,告别XML繁琐配置
原生Spring开发需要手动编写大量XML配置文件,完成Bean注册、组件扫描、事务、视图解析等配置,配置冗余且极易出错。
Spring Boot 遵循约定优于配置的核心思想,提供全套默认自动配置,绝大多数场景无需手动配置XML,仅需少量注解即可完成项目初始化,大幅降低配置成本。
1.2 快速开发,开箱即用
-
内置服务器:内置Tomcat、Jetty等服务器,无需单独部署项目,main方法即可启动服务
-
依赖整合:通过Starter起步依赖,一键整合主流技术栈,无需手动管理依赖版本、解决版本冲突
-
零冗余代码:剔除Spring框架冗余功能,专注业务开发,提升开发效率
-
适配生产环境:自带监控、日志、异常处理等生产级功能,开箱即可部署上线
二、IDEA 快速搭建 Spring Boot 项目(超详细步骤)
目前企业主流开发工具为IDEA,下面手把手教大家从零创建标准Spring Boot项目,全程零踩坑。
2.1 前置环境
-
JDK 8+(推荐JDK1.8、JDK17,适配绝大多数Spring Boot版本)
-
IDEA 2020+ 版本
-
Maven 3.6+(项目构建工具,IDEA自带可直接使用)
2.2 项目创建步骤
步骤1:新建项目,选择Spring Initializr初始化模板
打开IDEA - New Project,左侧选择 Spring Initializr,默认使用官方初始化地址,直接点击Next。
步骤2:配置项目基础信息
-
Group:项目组织标识(一般为公司域名倒写,如com.example)
-
Artifact:项目名称(自定义,如spring-boot-demo)
-
Version:项目版本(默认即可)
-
Java Version:选择对应JDK版本
步骤3:选择项目依赖(核心!新手必选)
本次入门项目只需勾选核心依赖:Spring Web(包含SpringMVC、Tomcat、web开发全套组件),点击Next。
步骤4:确认项目路径,完成创建
选择项目保存路径(路径无中文、无空格,避免启动报错),点击Finish,等待Maven自动下载依赖、初始化项目结构。
2.3 项目默认核心结构说明
java
spring-boot-demo
├── src/main/java/com/example/demo # 核心代码目录
│ └── DemoApplication.java # 项目启动主类(核心入口)
├── src/main/resources # 配置文件目录
│ └── application.properties # 全局核心配置文件
└── pom.xml # 项目依赖配置文件
三、Spring Boot Starter 起步依赖(开箱即用的核心)
很多新手疑惑:为什么只引入Spring Web依赖,就能实现web开发、接口访问、Tomcat启动?核心答案就是 Starter 起步依赖。
3.1 Starter 核心作用
Starter 是Spring Boot 封装的依赖整合包,它将某一类场景所需的所有依赖、版本统一整合,开发者无需手动引入多个依赖、无需处理版本冲突,一键引入即可使用全套功能。
3.2 常用企业级Starter依赖
| Starter依赖名称 | 核心作用 |
|---|---|
| spring-boot-starter-web | web开发核心,整合SpringMVC、内置Tomcat、接口开发全套组件 |
| spring-boot-starter-test | 单元测试依赖,整合Junit、MockMvc等测试工具 |
| spring-boot-starter-data-jpa | 数据库操作依赖,简化CRUD开发 |
| spring-boot-starter-redis | Redis缓存操作整合依赖 |
所有Starter依赖均由Spring Boot官方统一管理版本,彻底解决依赖版本冲突、漏引依赖的问题。
四、Spring Boot 核心配置文件详解
Spring Boot 提供两种全局配置文件,用于自定义项目默认配置,覆盖自动配置的默认参数,优先级可灵活适配开发场景。
4.1 两种配置文件格式
1)application.properties(传统键值对格式)
语法简单、入门友好,结构扁平化,是新手首选配置格式。
java
# 服务器端口配置(默认8080,自定义修改)
server.port=8081
# 项目访问根路径
server.servlet.context-path=/demo
# 日志级别
logging.level.com.example=info
2)application.yml(主流层级格式,企业常用)
YAML格式层级清晰、简洁易读,支持对象、数组配置,企业开发主流使用,严格依赖缩进(空格,禁止tab)。
bash
# YAML配置文件
server:
port: 8081
servlet:
context-path: /demo
logging:
level:
com.example: info
4.2 配置文件优先级
同一配置项同时存在两种文件时,优先级:properties > yml,properties配置会覆盖yml配置,日常开发建议统一使用一种格式,避免冲突。
五、Spring Boot 自动配置原理(核心底层)
Spring Boot 最核心的黑魔法就是自动配置,也是其简化开发的根本,很多开发者会用但不懂原理,下面通俗拆解底层逻辑。
5.1 核心注解:@SpringBootApplication
项目启动类上的 @SpringBootApplication 是复合注解,包含三大核心功能,是自动配置的入口:
bash
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration // 标识当前类为配置类
@EnableAutoConfiguration // 开启自动配置(核心)
@ComponentScan // 自动扫描当前包及子包下的所有组件
public @interface SpringBootApplication {}
5.2 自动配置核心流程
-
开启自动配置 :
@EnableAutoConfiguration注解通过Import导入自动配置选择器 -
加载自动配置类:Spring Boot 自动加载预设的自动配置类(如TomcatAutoConfiguration、WebMvcAutoConfiguration)
-
条件注解匹配:所有自动配置类都带有条件注解,满足条件才会生效
-
@ConditionalOnClass:类路径存在指定依赖类时生效 -
@ConditionalOnMissingBean:容器中没有手动创建对应Bean时,自动装配默认Bean
-
-
默认配置生效:无自定义配置时,使用官方默认配置;有自定义配置则覆盖默认配置
5.3 通俗总结
只要引入对应Starter依赖,Spring Boot 就会自动检测依赖 ,在满足条件的情况下,自动完成组件初始化、Bean注册、环境配置,无需开发者手动干预,真正实现开箱即用。
六、实战开发:第一个 Spring Boot RESTful 接口
理论落地实战,我们开发一个标准的RESTful风格接口,实现简单的数据返回,验证项目环境和自动配置功能。
6.1 编写Controller接口类
在启动类同级包下创建 UserController 类,代码如下:
bash
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 第一个Spring Boot RESTful接口
*/
@RestController // 组合注解:@Controller + @ResponseBody,直接返回JSON数据
@RequestMapping("/api/user")
public class UserController {
/**
* GET请求接口:获取用户信息
* @return JSON格式数据
*/
@GetMapping("/info")
public Map<String,Object> getUserInfo(){
Map<String,Object> result = new HashMap<>();
result.put("code",200);
result.put("msg","请求成功");
result.put("name","Spring Boot入门实战");
result.put("author","CSDN博主");
return result;
}
}
6.2 启动项目并测试
1、运行项目启动类 DemoApplication 的main方法,控制台无报错、输出启动成功日志即为正常;
2、浏览器访问接口地址:http://localhost:8081/demo/api/user/info(端口和路径以自己配置文件为准);
6.3 成功返回结果
java
{
"code": 200,
"msg": "请求成功",
"name": "Spring Boot入门实战",
"author": "CSDN博主"
}
七、全文核心总结
-
核心思想 :Spring Boot 核心是约定优于配置,简化Spring开发,适配企业快速迭代;
-
Starter依赖:整合场景化依赖,解决版本冲突、无需手动配置依赖;
-
自动配置:通过@EnableAutoConfiguration+条件注解,自动装配组件,开箱即用;
-
配置文件:支持properties、yml两种格式,自定义覆盖默认配置;
-
开发模式:主启动类启动项目,无需部署服务器,快速开发RESTful接口。