springboot出现的原因二---作为web的后端服务一站式整合器

springboot出现的原因二---作为web的后端服务一站式整合器

java最核心的功能,就是为业务赋能

直接讲就是利用tomcat

这里先了解一下背景信息

前端通过axios发送一个http请求包

后端的tomcat收到这请求包,解析成java能听的懂的语言

然后java中开启一个线程

处理数据,整理成一个对象

然后在把java对象,转换装到http请求包里,返回给前端。

这样,用户的基本需求,前端提供页面,后端提供数据就完成了。

这个是一个基本的业务流程

对于我们后端程序员,在这里面要做什么呢

1.下载tomcat服务器这个软件包

2.在idea里面文件包里写代码,引入springmvc,spring依赖等

3.把文件夹代码打成war包,部署到tomcat上

这个中间流程是很繁琐的

springboot的核心,就是让程序员的精力都在业务上,不要在配置上,消耗过多的精力

于是当我们在springboot里的maven里引入这个依赖

技术需求 额外依赖
开发 Web 应用 spring-boot-starter-web(会内嵌 Tomcat 并自动配置 Spring MVC)

就不用管tomcat的配置层面了

需要配置,就直接在yaml里配置就好了

当然,这里作为程序员,也要理解tomcat的机制,和springmvc的机制

下面是对上面内容会更专业细致的梳理

上面讲的是思路

现有思路,才有具体的

一、传统 Web 开发(Spring MVC + Tomcat)的痛点

你提到的流程是标准的 Java Web 服务交互:

  1. 前端通过 axios 发 HTTP 请求。
  2. Tomcat 接收请求,解析成 Java 能处理的 HttpServletRequest
  3. Spring MVC 根据 @Controller@RequestMapping 等注解,调用业务逻辑。
  4. 业务层处理后返回 Java 对象(如 User),再通过 HttpServletResponse 转成 JSON/XML 返回前端。

但在开发、部署环节,程序员要做很多"与环境打交道"的事:

  • 下载并配置 Tomcat(端口、路径、JVM 参数等)。
  • 在 IDE 中手动引入 Spring、Spring MVC 依赖,还要注意版本兼容性。
  • 配置 web.xml(或 Java Config)来注册 DispatcherServlet、字符编码过滤器等。
  • 把项目打成 WAR 包 ,再复制到 Tomcat 的 webapps 目录,启动 Tomcat 才能访问。

这些步骤与业务逻辑无关,却消耗了大量精力,而且不同项目之间配置基本雷同,属于"重复造轮子"。

二、Spring Boot 如何解决

Spring Boot 的哲学就是"约定大于配置",它把你提到的繁琐工作自动化了:

你的痛点 Spring Boot 的做法
下载、配置 Tomcat 引入 spring-boot-starter-web 后,自动内嵌 Tomcat(或 Jetty/Undertow),无需手动安装。
手动引入 Spring MVC 依赖并配置 Starter 帮你引入所有必要的依赖,并且自动配置 DispatcherServlet、静态资源路径、消息转换器等。
打包成 WAR 再部署 默认打包成可执行的 JAR,内嵌 Servlet 容器,直接 java -jar app.jar 就跑起来了。
复杂的 XML 或 Config 类 绝大部分配置都有合理默认值,你只需要在 application.yml 里覆盖需要改的部分(如端口、数据库连接)。

核心就是 spring-boot-starter-web 这一个依赖,它做了三件大事:

  • 引入 Spring MVC 和 Jackson(JSON 处理)。
  • 引入 Tomcat 内嵌包。
  • 自动配置所有 Web 开发的常用组件。

三、需要注意:简化不等于不学习

正如你最后强调的:"作为程序员,也要理解 Tomcat 的机制和 Spring MVC 的机制"。Spring Boot 隐藏了复杂性,但生产环境调优、排查问题时,你依然需要知道:

  • Tomcat 的线程池配置(server.tomcat.threads.max 等)如何影响并发能力。
  • Spring MVC 的 DispatcherServlet 处理流程、拦截器、参数解析原理。
  • 自动配置是如何通过 @EnableAutoConfigurationMETA-INF/spring.factories 生效的。

Spring Boot 让你从"配置泥土"里解放出来,专注于"种庄稼",但你不能完全不知道泥土的特性。

相关推荐
非凡ghost32 分钟前
AI修图不“造假“,摄影师的出片效率加速器
服务器·前端·人工智能·电脑
2601_9516152033 分钟前
网页设计模板源码 web前端模板网页源码下载
前端
mmsx33 分钟前
osmdroid 地图实战 03|地图的"分层世界":离线方案、图层模型与 Overlay 体系
android·前端
玉宇夕落1 小时前
背单词项目一:融会贯通:从零构建"单词大师"后台——Next.js + Supabase + Drizzle 全栈开发实战
后端
橙序员小站1 小时前
从 Demo 到生产:Agent Harness 如何把 AI 真正“接”进项目
后端·aigc·ai编程
郭邯1 小时前
从零到一:我用 AI 写了个复利计算器,顺便治好了我的"公式恐惧症"
前端
Pointer Pursuit1 小时前
C++11特性(二)
前端·c++·算法
天道kabuto1 小时前
Vue3 升级踩坑:子组件 click 事件为什么会触发两次?
前端
Nayana1 小时前
《Web 到 HarmonyOS》-- Ability、Stage、模块化与路由导航
前端
她的男孩1 小时前
一个开源低代码框架的协作 SPI 是怎么设计的 ForgeAdmin 拆解 + 实战接入新平台
后端·算法·架构