Spring Boot 入门:60 分钟,带你从零快速上手
背景介绍:为什么我要写这篇教程?

大概是在两年前,我刚进一家创业公司负责搭建新的后端系统。当时项目时间紧、任务重,技术选型需要既快又稳。Java 当然是首选语言,但传统的 Spring MVC 架构配置繁琐,光是 web.xml、spring-servlet.xml 这些 XML 配置文件就够让人头大了。于是我们决定尝试用 Spring Boot 来构建服务。
那时候我也只是听说过 Spring Boot 的“开箱即用”,并没有真正动手做过完整的项目。结果第一次用的时候确实踩了不少坑:自动配置到底是怎么工作的?依赖管理为什么有时候会冲突?如何在没有 XML 的情况下进行自定义配置?这些问题都曾让我一度怀疑是不是该回去用老版本的 Spring。
但随着项目的推进,Spring Boot 的优势也逐渐显现出来:快速启动、内嵌 Tomcat、统一配置管理、模块化设计……开发效率提升得非常明显。尤其是在团队协作中,大家都用一致的风格和结构来写代码,调试、测试、部署都变得更加简单。
所以我想通过这篇文章,把我当初踩过的坑总结一下,也希望你能在 60 分钟之内,就掌握 Spring Boot 的基本使用方法,并能独立搭建一个简单的后端服务。
我遇到的第一个问题:Spring Boot 到底该怎么开始写?

刚接触 Spring Boot 的时候,我最大的困惑就是“从哪儿下手”。不像以前那样要手动创建 web.xml 和各种 bean 配置,现在这些都没了,全是自动化生成的。
我当时的第一反应是去百度“Spring Boot 入门教程”,结果一搜出来都是千篇一律的内容:新建 Maven 项目、引入 starter-web、加个 controller、运行 main 方法……但是没人告诉我为什么要这样写?每个部分的作用是什么?
比如:
@SpringBootApplication是什么?- 内嵌的 Tomcat 是怎么回事?
- application.properties 文件又是用来干啥的?
- 如果我要连接数据库怎么办?
这些疑问如果不搞清楚,光照着写代码是走不远的。
解决方案:理解核心概念 + 快速上手实战

带着这些问题,我花了一个下午的时间翻看了官方文档,并结合自己的实际需求做了个小小的 Demo:搭建一个用户管理系统的基础框架。主要包括:
- 用户注册接口
- 用户列表查询接口
- 数据库支持 MySQL
- 使用 RESTful 风格返回 JSON 数据
整个过程控制在一个小时内完成。下面我将一步步分享我是怎么做的,同时也会讲清楚背后的原理,让你不只是“复制粘贴”。
实战操作:60 分钟入门指南

第一步:环境准备(10分钟)
工具安装
你需要先准备好以下工具:
- JDK 8+
- IntelliJ IDEA 或 Eclipse(推荐 IDEA)
- Maven 3.x
- MySQL(5.7+)
Tips:IDEA 对 Spring Boot 支持非常好,推荐使用它的 Spring Initializr 功能快速生成项目模板。
创建项目结构
你可以手动创建一个 Maven 项目,或者直接使用 start.spring.io 网站生成 ZIP 包解压导入。
关键依赖如下(pom.xml):
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这里用到了三个关键 starter:
- web:提供 Web 支持,包括内嵌 Tomcat、REST 接口处理
- data-jpa:简化数据库访问,提供 JPA 和 Repository 支持
- mysql-connector-java:MySQL 驱动
第二步:编写主类与基础配置(15分钟)
创建主类(Application.java),这是整个程序的入口点:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication 是组合注解,包含以下三部分内容:
@ComponentScan:自动扫描组件(controller、service、repository等)@EnableAutoConfiguration:根据依赖自动配置 Bean(比如发现有 Tomcat 就自动引入)@SpringBootConfiguration:表示这是一个 Spring Boot 配置类
接着,在 application.properties 中配置数据源和 JPA 设置:
# Server Port
server.port=8080
# Database config
spring.datasource.url=jdbc:mysql://localhost:3306/boot_user_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA settings
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
这里有几个注意点:
- 数据库名 boot_user_db 需要提前在 MySQL 中建好
ddl-auto=update会在运行时自动更新表结构,适合开发阶段show-sql=true方便调试 SQL 语句输出
第三步:创建实体与 Repository(15分钟)
接下来创建 User 实体类:
@Entity
@Data // Lombok 自动生成 getter/setter/toString
@NoArgsConstructor
@AllArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String email;
}
然后创建 UserRepository 接口:
public interface UserRepository extends JpaRepository<User, Long> {
}
JPA 会自动为这个接口生成实现类,我们可以直接注入并调用 CRUD 方法。
插一句,我在实际项目中也尝试过 MyBatis,但 JPA 在快速原型开发上是真的香。如果你是 Java 后端新手,建议优先掌握 JPA;等你熟悉之后再换到 MyBatis 也不迟。
第四步:编写 Controller(15分钟)
最后是 REST API 控制器:
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
}
这样我们就完成了两个接口:
GET /api/users:获取所有用户POST /api/users:新增用户(JSON 格式 body)
这时候启动 Application 类,打开浏览器访问 http://localhost:8080/api/users,你会看到一个空的 JSON 数组。试着用 Postman 发一个 POST 请求添加一条用户数据试试看。
到这里为止,我们的第一个 Spring Boot 应用已经跑起来了!
踩坑经验:我在开发过程中遇到的几个典型问题
问题1:数据库连接不上或报错 Unknown database
这是最常见的一种错误。可能是数据库名拼错了,也可能是 MySQL 没有开启远程访问权限,或者是密码不正确。
解决方式:
- 检查
application.properties中的 URL 是否正确 - 查看数据库是否真的存在,且可以被当前用户名访问
- 如果是本地测试,可以考虑关闭防火墙或者授权 root 用户本地访问
问题2:Spring Boot 报错 No qualifying bean of type 'xxx' available
这个问题是因为 Spring 找不到某个 Bean,可能的原因:
- 某个 service 没有用
@Service注解 - 某个 repository 没有用
@Repository注解 - 没有在主类所在的包下建立层级关系,导致 Component Scan 没有扫描到
解决方式:
- 确保 Bean 类上有对应注解
- 所有组件放在主类的子包下(如 com.example.demo.controller、com.example.demo.service 等)
问题3:Tomcat 启动端口被占用
如果之前运行过一次,没关掉就重新启动,就会报错。
解决方式:
- 查看占用端口的进程 ID:
netstat -ano | findstr :8080 - 关闭进程或修改 server.port 值
项目效果:从零到上线只用了1周时间
回到那次真实的项目背景,我们用这套结构快速搭建了用户中心、权限中心等多个核心模块,并配合 Swagger 提供接口文档,极大提升了开发效率。
最终上线后的效果:
- 开发周期缩短了 40%,新功能迭代速度明显加快
- 团队成员之间代码风格统一,协作更顺畅
- 自带健康检查和监控功能,运维成本降低很多
后来我还把这个结构封装成一个小模板,方便后续项目直接复用。
给新手的几点建议和注意事项
不要一开始追求完美架构,先跑起来再说
很多同学一开始就想写得特别规范,比如 domain 层、service 层、DTO、VO 层全都要拆开。其实刚开始完全可以放在一起,等逻辑复杂了再去拆分。合理利用 Lombok 插件
像我上面提到的@Data是 Lombok 提供的注解,能省掉大量 getter/setter 的代码。建议你也装一个 Lombok 插件。学会查看日志
Spring Boot 默认使用 Logback 输出日志,运行时报错一定要看日志!很多时候它已经告诉你原因了,比如哪个类找不到、哪个依赖缺失。保持目录结构清晰
虽然 Spring Boot 不强制你必须按照某种结构组织代码,但最好还是遵循约定:controller 放 controller 包,entity 放 entity 包,便于维护。生产环境别忘记配置 profile
用application.properties是开发环境,真实上线一定要用application-prod.properties并设置-Dspring.profiles.active=prod启动参数。
总结:Spring Boot 真的是 Java 后端的一把利器
从我自己的亲身经历来看,Spring Boot 完全能胜任中小型项目的开发任务,而且学习曲线相对平缓。尤其对于刚入行的同学来说,它可以让你专注于业务逻辑而不是一堆繁琐的配置。
当然,Spring Boot 只是一个开始。当你掌握了它以后,你会发现还有 Spring Cloud、Spring Security、Spring Data Rest、Actuator 等一系列扩展模块等着你去探索,它们会让你在微服务架构、权限控制、分布式系统等领域走得更远。
希望这篇实战性质的文章对你有所帮助。如果你也像我一样,是从传统 Spring 走向 Spring Boot 的开发者,那我相信你一定能体会这份“简洁却强大”的魅力。
祝你在 Java 后端的路上越走越远,欢迎留言交流你的学习心得!
🚀 作者微信公众号:【CodeMaster笔记】
👨💻 微信号:code_master_01(备注“博客”即可)
🔁 转载请注明出处,尊重原创成果。

评论 0