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 让你从"配置泥土"里解放出来,专注于"种庄稼",但你不能完全不知道泥土的特性。

相关推荐
天涯明月199313 小时前
后端工程师全栈转型前端入门
前端·状态模式·全栈工程师
kyriewen13 小时前
前端初级岗位暴跌62%:我带了三年的实习生被裁了,而AI是他亲手教的
前端·面试·ai编程
zifengningyu14 小时前
【无标题】
前端·vue.js
JiaWen技术圈14 小时前
React Server Functions 深度解析
前端·react.js·前端框架
幸运小圣14 小时前
前端三种输入数据来源生成 worksheet(工作表)新手适用详细篇【SheetJS】
开发语言·前端·javascript
zhz521414 小时前
Spring Boot + 腾讯 Kona 实现 TLCP 8443 国密 HTTPS 排障实录(奇安信浏览器已通)
spring boot·后端·https·国密·gmssl·kona
IT策士14 小时前
Django 从 0 到 1 打造完整电商平台:我的订单列表与订单详情
后端·python·django
Hilaku14 小时前
如何实现 0 毫秒无感页面跳转?聊聊被低估的 Speculation Rules API
前端·javascript·程序员
旧曲重听114 小时前
我的Vibe Coding一周记…
前端·人工智能·程序人生·面试