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 处理流程、拦截器、参数解析原理。
  • 自动配置是如何通过 @EnableAutoConfiguration 和 META-INF/spring.factories 生效的。

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

相关推荐
子兮曰5 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰5 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万5 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝5 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码5 天前
别再前后端各写一套表单校验了
java·后端
三十而立洋5 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
大勇前进5 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
vipxieliang5 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
yuzhi_liu5 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile5 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go