品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Spring 5.3.7
Spring Boot出来这些年,已经成了Java后端开发的标配,但是有不少刚入门的同学对它的认知还停留在"搭项目用的框架"这个层面,至于它能做什么、适合跟哪些框架搭配着用,反而说不太清楚。这也正常,Spring Boot本身的生态很大,周边能组合的东西也多,新手一时半会儿确实不容易摸清边界,不过如果能把这些问题早点理清楚,对技术选型和项目开发都有实际帮助。接下来我们就围绕着“Spring Boot和什么框架一起用,Spring Boot框架可以做什么”这两个问题来展开讨论。
一、Spring Boot和什么框架一起用
开发久了我们会发现Spring Boot很少单独出现在生产项目里,它需要搭配其他框架才能撑起完整的业务系统。例如持久层这块MyBatis是用得最多的,它跟Spring Boot的整合大家应该都是轻车熟路的,mybatis-spring-boot-starter引入之后配置几行就能跑起来。

相比Hibernate,MyBatis的SQL写在XML或者注解里,开发者对查询的控制力更强,出了问题也好排查,所以在项目中几乎是标配。如果项目对灵活查询要求不高、表结构比较规整,也有人选Spring Data JPA,写法更简洁,但复杂查询就没那么顺手了。

安全上,可以考虑使用Spring Security,它和Spring Boot集成起来很顺滑,登录认证、权限控制、接口保护,基本上都靠它来做。现在主流的做法是Spring Security配合JWT,前后端分离项目里用得很普遍,token校验、刷新、失效处理这套逻辑,组合起来都能覆盖。

我们项目中如果涉及微服务场景,Spring Boot通常会和Spring Cloud一起用,服务注册发现用Nacos或者Eureka,配置中心用Nacos Config或者Spring Cloud Config,服务间调用用OpenFeign,网关用Spring Cloud Gateway。总的来说,Spring Boot的搭档选谁,取决于项目的业务形态。
二、Spring Boot框架可以做什么
很多人学Spring Boot是跟着教程走的,搭完项目、写完增删改查就结束了,对它真正能覆盖哪些场景反而没什么概念。Spring Boot可以做Web后端接口,它内嵌了Tomcat,不需要额外部署容器,打成jar包直接运行,对外提供RESTful接口。前后端分离的项目里,Spring Boot负责处理请求、操作数据库、返回数据,这是它最普遍的使用场景,也是大多数人接触它的起点。

Spring Boot在微服务架构里很重要,每个微服务本身就是一个独立的Spring Boot应用,有自己的数据库、自己的业务逻辑,通过接口或者消息队列跟其他服务交互。拆分得合理的话,单个服务可以独立部署、独立扩容,维护起来比大单体应用灵活很多。

除了在线业务,Spring Boot做定时任务也很顺手。@Scheduled注解加上去,配个cron表达式,定时跑数据同步、报表生成、清理过期记录这类任务,代码量很少,维护也方便。如果任务量大、需要分布式调度,再接入XXL-Job或者Quartz,Spring Boot和这些框架的整合都很成熟。

消息消费这块它同样能做,Spring Boot接入RabbitMQ或者Kafka之后,可以作为消费者持续监听队列,处理异步任务、日志收集、事件驱动这类业务。生产者和消费者解耦,系统稳定性会好很多,高并发场景下这个架构很常见。

以上就是Spring Boot和什么框架一起用,Spring Boot框架可以做什么的全部内容了。Spring Boot的价值不只是简化了项目搭建,更在于它背后成熟的生态。MyBatis、Redis、Spring Security、Spring Cloud这些框架和它的组合,已经能覆盖绝大多数业务场景。至于能做什么,从普通的Web后端接口、微服务拆分,到定时任务、消息消费、内部工具系统,Spring Boot都能胜任。