Springboot | 初识Springboot 从“手动做饭”到“点外卖”的编程革命
一文读懂Spring Boot:从“手动做饭”到“点外卖”的编程革命
如果你是编程新手,可能听过“Spring”这个词,但总觉得它像个复杂的“大厨房”——要自己买菜、切菜、调火候,少一步就可能搞砸。而今天要聊的Spring Boot,就像把这个大厨房变成了“外卖平台”:你只管说要“宫保鸡丁”,它直接给你做好送到手上,不用管锅碗瓢盆。
一、Spring Boot到底是什么?
先举个生活例子:
想喝一杯奶茶,传统方式是:自己买茶叶、牛奶、糖,煮茶、调比例、冷藏(步骤多且容易出错);
而Spring Boot就像“奶茶店”:你说“要一杯珍珠奶茶”,店员直接给你做好,不用管茶叶放多少、牛奶烫到多少度。
专业解释:Spring Boot是基于Spring的“简化工具”,它帮我们省略了Spring开发中繁琐的配置(比如XML文件、手动导包),让开发者能快速搭建一个可运行的项目。
二、为什么要用Spring Boot?
假设你要开一家小超市(开发一个简单的Web应用):
- 传统Spring:你得自己找店面(配置服务器)、买货架(导入依赖)、画价签(写XML配置),折腾半天还没开始进货(写业务逻辑);
- Spring Boot:店面自带货架(内置服务器)、货架上自动摆好常用商品(starter依赖)、价签自动生成(自动配置),你直接进货就行。
核心优势总结:
- 少配置:不用写大量XML,注解+默认配置搞定80%需求;
- 快启动:内置Tomcat等服务器,直接运行Java类就能启动项目;
- 易扩展:需要新功能时,加个依赖(比如连接数据库)就行,不用改原有配置。
三、Spring Boot核心特性
1. 自动配置(Auto-configuration)
就像去咖啡店点“美式咖啡”:默认是黑咖啡,不用你说“不加奶不加糖”——Spring Boot会根据你导入的依赖,自动配置好相关功能。
比如你导入了spring-boot-starter-web
依赖(Web开发套餐),它会自动配置好Tomcat服务器、Spring MVC框架,你直接写接口就行。
2. Starter依赖(Starter Dependencies)
类似“火锅底料套餐”:买一包“麻辣火锅底料”,里面已经有辣椒、花椒、香料,不用单独买。
Spring Boot的starter
就是“功能套餐”:
spring-boot-starter-web
:Web开发套餐(含Tomcat、MVC);spring-boot-starter-data-jpa
:数据库操作套餐(含ORM框架);spring-boot-starter-test
:测试套餐(含Junit、Mockito)。
3. 嵌入式服务器(Embedded Servers)
传统开发需要手动装Tomcat、配置端口;Spring Boot把Tomcat“打包”进项目,就像“自热火锅”——不用找锅,自带加热包,拆开就能用。
4. actuator(监控功能)
就像家里的“智能电表”:实时显示用电量,出问题时提醒你。
Spring Boot的actuator
可以监控项目健康状态、内存使用、接口调用量,方便排查问题。
四、动手实践:用Spring Boot做一个“图书小管家”
我们来做一个简单的功能:记录图书信息(书名、作者),能查询所有图书,也能添加新图书。
步骤1:创建项目(像搭积木一样简单)
- 打开 Spring Initializr(Spring官方项目生成器);
- 填写信息:
- Project:Maven(包管理工具);
- Language:Java;
- Spring Boot:选最新稳定版(比如3.5.6);
- 填写Group(组织名,比如
com.example
)和Artifact(项目名,比如bookmanager
);
- 选依赖:左侧搜
Spring Web
(Web功能),勾选后点“Generate”下载项目压缩包。
步骤2:解压项目,用IDE打开(比如IDEA、VSCode)
项目结构像这样(重点看这几个文件):
bookmanager/
├─ src/
│ ├─ main/
│ │ ├─ java/
│ │ │ └─ com/example/bookmanager/
│ │ │ └─ BookmanagerApplication.java // 启动类
│ │ └─ resources/
│ │ └─ application.properties // 配置文件
└─ pom.xml // 依赖管理(类似购物清单)
打开pom.xml文件,可以看到我们在初始化工具里选择的依赖项都已填写好。
步骤3:写代码(核心功能实现)
① 定义“图书”实体(像给图书做个“身份证”)
新建com.example.bookmanager.entity.Book
类:
package com.example.bookmanager.entity;public class Book {private Long id; // 图书编号private String name; // 书名private String author; // 作者// 构造方法(方便创建对象)public Book(Long id, String name, String author) {this.id = id;this.name = name;this.author = author;}// Getter和Setter(让外部能读取/修改属性)public Long getId() { return id; }public void setId(Long id) { this.id = id; }public String getName() { return name; }public void setName(String name) { this.name = name; }public String getAuthor() { return author; }public void setAuthor(String author) { this.author = author; }
}
若引入Lombok,并在类名上增加@Data注解,可不用写构造函数和setter及getter。
② 写控制器(处理用户请求,像超市收银员)
新建com.example.bookmanager.controller.BookController
类:
package com.example.bookmanager.controller;import com.example.bookmanager.entity.Book;
import org.springframework.web.bind.annotation.*;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;@RestController // 标记这是一个处理HTTP请求的控制器
public class BookController {// 用List暂存图书(实际项目应该用数据库,这里简化)private final List<Book> books = new ArrayList<>();// 自动生成唯一ID(AtomicLong保证多线程安全)private final AtomicLong idGenerator = new AtomicLong();// 0. 初始化两本书的演示数据@GetMapping("/init")public String doInit() {Book b1 = new Book();b1.setId(idGenerator.incrementAndGet());b1.setAuthor("刘慈欣");b1.setName("三体");books.add(b1);Book b2 = new Book();b2.setId(idGenerator.incrementAndGet());b2.setAuthor("罗贯中");b2.setName("三国");books.add(b2);return new String();}// 1. 查询所有图书:GET请求,访问路径 /books@GetMapping("/books")public List<Book> getAllBooks() {return books; // 直接返回图书列表}// 2. 添加图书:POST请求,访问路径 /books,参数从请求体拿@PostMapping("/books")public Book addBook(@RequestBody Book book) {// 生成新ID并设置给图书Long newId = idGenerator.incrementAndGet();book.setId(newId);// 把图书加入列表books.add(book);return book; // 返回添加的图书(含ID)}
}
步骤4:启动项目(像按下“电源键”)
运行BookmanagerApplication.java
里的main
方法,看到类似日志说明启动成功:
Tomcat started on port 8080 (http)
Started BookmanagerApplication in 2.3 seconds
步骤5:测试功能
①初始化
在浏览器中直接访问http://127.0.0.1:8080/init
② 查询所有图书
浏览器访问http://localhost:8080/books
,会看到初始化时添加到list中的图书信息:
[{"id":1,"name":"三体","author":"刘慈欣"},{"id":2,"name":"三国","author":"罗贯中"}]
② 添加图书(用ApiPost、Postman或curl)
这里用国产的ApiPost举例:
(下载免费版即可)
-
新建接口
-
方法选
POST
,地址http://127.0.0.1:8080/books
; -
body 选
raw
→JSON
,输入:{"name": "Spring Boot实战","author": "张三" }
-
点“发送|Send”,会返回添加的图书(ID自动增长)。
再次执行步骤②,可以看到三本图书信息
五、Spring Boot能做什么?
- 网站后端:像电商网站的商品查询、下单接口;
- 小程序后端:微信小程序的用户登录、数据提交功能;
- 企业应用:OA系统、CRM系统的业务逻辑处理;
- 微服务:和Spring Cloud配合,做大型分布式系统(比如外卖平台的订单、支付、配送服务)。
六、总结
Spring Boot的核心就是“简化”:把复杂的配置交给框架,让开发者专注于业务逻辑。就像从“手动织布”到“机器织布”,效率提升不止一点点。
如果你是新手,从这个“图书小管家”例子入手,慢慢尝试加功能(比如删除图书、按作者查询),很快就能掌握Spring Boot的精髓~
最后
编程的本质是解决问题,框架是帮我们更高效解决问题的工具。Spring Boot就是这样一个“趁手的工具”,赶紧用起来吧!