Spring Boot入门教程:60分钟快速上手

500制造机
2025-12-18 06:37
阅读 1855

上周五凌晨1点,我刚把娃哄睡(对,又是“哄睡失败-崩溃-再哄-终于睡了”的经典剧情),突然想起明天要给实习生做技术分享——讲Spring Boot快速入门。脑子里瞬间弹出三个字:完蛋了

作为一个边带两岁半娃、边在后端组肝分布式系统的全职妈妈,我的时间管理技能已经进化到“碎片化生存”级别。早上8点娃还没醒,我就得抓紧写代码;白天开会时一边听着产品经理画大饼,一边在Notion里偷偷记Bug;晚上等娃睡了,还得抽空复习面试题,毕竟这行卷得要命,谁也不敢保证能稳坐钓鱼台。

所以,今天这篇《Spring Boot 60分钟上手》,不是那种“Hello World完事”的水文,而是我从两年实战+无数次线上翻车+被运维追着骂的经历中提炼出来的真实速成指南。无论你是想跳槽刷面试题、还是被领导临时抓壮丁写个后端服务,这篇都能帮你快速开干。


为啥是Spring Boot?Go不行吗?

先说个题外话:最近组里有个新来的同事疯狂安利Go,说“Go写Web快如闪电,部署简单,内存占用低”,还顺手甩给我几个Gin框架的Demo。我承认,Go确实香,尤其在高并发场景下表现优异。但现实是——我们老项目全是Java栈,数据库连的是Oracle,中间件用的是Kafka + Redis + MySQL那一套。这时候你让我重写?产品经理怕是要连夜提刀来我家

而且,现在大多数互联网公司的后端岗位,尤其是中大型企业,Spring Boot依然是主流。你看招聘JD就知道:“熟练掌握Spring Boot、MyBatis、Redis……” 几乎成了标配。所以,哪怕你心仪Go,也得先把Spring Boot拿下——毕竟,活下去才能谈理想


60分钟能干啥?目标明确才不浪费时间

别幻想60分钟就能成为Spring Boot大神。我们的目标很务实:

  1. 能创建一个可运行的RESTful API服务
  2. 连上数据库,实现增删改查(CRUD)
  3. 理解核心配置和常见注解
  4. 知道怎么打成Jar包部署到测试环境

搞定这些,你就能应付大部分初级面试题,也能接住临时派下来的“小需求”(比如给前端提供个用户信息接口)。


第一步:搭环境,别在第一步就卡死

我见过太多新人卡在Maven下载依赖慢、JDK版本不对、IDEA插件没装……所以,先确认:

  • JDK 17(推荐,LTS版本)
  • Maven 3.8+
  • IDEA(IntelliJ IDEA Community就行)

然后打开 start.spring.io,这是Spring官方脚手架,比手动配pom.xml省心一百倍。

我一般选这些:

  • Project: Maven
  • Language: Java
  • Spring Boot: 3.x(最新稳定版)
  • Dependencies: Spring Web, Spring Data JPA, MySQL Driver, Lombok

💡 小贴士:Lombok能让你少写getter/setter,省下的时间够我多陪娃玩五分钟了!

生成项目后导入IDEA,等Maven下载完依赖(趁这时间去冲杯咖啡,或者捡起地上娃扔的积木),项目结构应该长这样:

src
└── main
    ├── java
    │   └── com.example.demo
    │       └── DemoApplication.java
    └── resources
        ├── application.properties
        └── ...

第二步:写个API,让前端能调你

新建一个Controller:

@RestController
@RequestMapping("/api/users")
public class UserController {

    @GetMapping("/{id}")
    public ResponseEntity<User> getUser(@PathVariable Long id) {
        // 暂时返回假数据
        User user = new User(id, "张三", "zhangsan@example.com");
        return ResponseEntity.ok(user);
    }
}

再建个User实体类(加Lombok注解):

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private String email;
}

启动DemoApplication,浏览器访问 http://localhost:8080/api/users/123,看到JSON输出就说明通了!

🤯 真实场景:去年双11前,我写了个库存查询接口,忘了加@RestController,结果返回的是字符串而不是JSON,前端直接炸了。当时真的想砸电脑。


第三步:连数据库,别再用假数据糊弄人

编辑 application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/demo_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

然后把User改成JPA实体:

@Entity
@Table(name = "users")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
}

再建个Repository:

public interface UserRepository extends JpaRepository<User, Long> {
}

最后在Controller里注入:

@Autowired
private UserRepository userRepository;

@GetMapping("/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
    return userRepository.findById(id)
        .map(user -> ResponseEntity.ok(user))
        .orElse(ResponseEntity.notFound().build());
}

现在,你的接口是真的从数据库读数据了!记得提前建好demo_dbusers表。


第四步:打包部署,别只在本地跑

在项目根目录执行:

./mvnw clean package

生成的Jar在 target/demo-0.0.1-SNAPSHOT.jar。上传到测试服务器,运行:

java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8081

🔧 运维经验:生产环境千万别用内嵌Tomcat跑高流量服务!但我们这种内部工具或低频接口,完全够用。另外,记得加--spring.profiles.active=prod切换配置。


面试题高频考点(附赠)

很多面试官会问:

  • Spring Boot自动配置原理?
    → 简单说:@EnableAutoConfiguration 会扫描META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports里的配置类,按条件加载Bean。

  • Starter是什么?
    → 就是一堆依赖的“套餐”,比如spring-boot-starter-web自动引入Tomcat、Spring MVC等。

  • 如何自定义Starter?
    → 写过一次,但实际工作中几乎用不到……除非你在做基础架构。


总结:60分钟够不够?

说实话,如果你有Java基础,60分钟绝对能跑通一个完整的小服务。我上周就是用这个流程,带实习生半天就上线了一个配置管理接口。

当然,真正的难点不在“跑起来”,而在“跑稳”。比如:

  • 怎么做全局异常处理?
  • 接口要不要加缓存?
  • 分页怎么设计?
  • 日志怎么追踪链路?

这些,才是后端开发的深水区。但没关系,先跑起来,再优化——这是我这两年带娃+写代码悟出的最大真理。娃不会因为你没读完育儿书就不哭,系统也不会因为你没学完分布式理论就不崩。行动,永远比完美主义重要

最后,如果你也在带娃写代码的路上,欢迎留言交流。说不定下次分享,我就写《如何在娃拆家时调试分布式事务》——那场面,比CAP理论还难搞 😅

评论 0

最热最新
暂无评论
500制造机Lv.1
0
影响力
0
文章
0
粉丝