news 2026/5/27 7:01:59

这年代 单纯的前端已经活不下去了开始学后端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
这年代 单纯的前端已经活不下去了开始学后端

一、配置和术语讲解【跟前端对比】
1.🛡️ 第一集团军:基地与后勤补给(环境与构建)

  • 没有地基,再牛的武器也开不出去。这是你大军开拔的前提。

    Java JDK (兵营地基) = Node.js

    这是最底层的生存环境。就像你写 Vue/React 电脑里必须装 Node 一样,没装 JDK,你的服务器上连个 Java 兵都产不出来,全线瘫痪。

    Maven (后勤采购总管) = npm/yarn + Webpack

    它负责两件事:一是照着你的采购单(pom.xml,等同于 package.json)去全世界下载别人写好的代码包;二是负责把你的零散代码进行打包编译。

Jar 包 (终极破甲弹) = dist 静态产物文件夹

开发的时候代码是散装的,但真到了上战场(部署到服务器)时,Maven 会把你所有的代码、依赖全部压缩成一个沉甸甸的独立炸弹(后缀为 .jar 的文件)。只要服务器上有 JDK,把这个炸弹扔过去执行命令,系统就直接跑起来了。

2.⚔️ 第二集团军:战术框架与重型武器(代码骨架)

  • 没人会用冷兵器去打现代战争,所以你需要现代化的战车。

Spring Boot (中央指挥战车) = Next.js 或 Nuxt (你没问,但它是整个后端的灵魂)

几乎所有的现代 Java 后端都是跑在 Spring Boot 上的。它屏蔽了老一代 Java 极其恶心的繁琐配置,内置了服务器,让你“开箱即用”。你这两天敲的指令里带了 spring-boot:run,就是启动了这辆战车。

BladeX (特种作战套装) = Ant Design Pro

它是在 Spring Boot 这辆战车的基础上,别人帮你改装好的“VIP尊享版装甲车”。企业级开发里那些最恶心的脏活(用户登录、权限分配、菜单管理)它全自带了,你只需要在这个壳子里写具体的业务就行。

3.📡 第三集团军:情报局与通讯网络(数据层)

  • 仗怎么打,全看情报准不准。后端的核心资产只有一样:数据。

MySQL (地下绝密情报库) = 永远不丢的超级 localStorage (你没问,但它是最终归宿)

冷酷、严谨的关系型数据库。所有的用户资产、账单记录最终都要锁死在这里面,只要硬盘不炸,数据就永远在。它只认二维表格形式的暗号(SQL 语句)。

Redis (前线极速战壕/黄金备餐台) = Redux/Pinia 的服务器版本

因为 MySQL 每次去硬盘读数据太慢了,一旦百万大军(高并发)同时冲过来,MySQL 当场就会死机。所以放一个在内存里运行的 Redis 挡在最前面。热门数据秒存秒取,极速响应。
people------ redis-----mysql

MyBatis (皇家翻译官) = 极致增强版的 axios 响应拦截器

Java 将领(对象)不懂 MySQL 情报库的暗号(SQL 表格)。MyBatis 夹在中间,负责把 Java 发出的命令翻译成 SQL 去查库,查完再把干瘪的数据表格瞬间组装成 Java 对象,端给指挥官看。
java -------mybatis---------mysql

4.⚙️ 第四集团军:三步作战指令网(业务执行流)

  • 这就是你写接口时,代码里的核心调用链路。
controllerserviceMapper/DAO
前端api逻辑mysql处理(Mapper带着mybatis去处理mysql)

Controller 层 (总参接待处) = 你的 API 路由

专门负责接你前端 axios 发来的请求(比如那个 InputReviewStatusVO 情报箱)。他只负责检查前端传的参数对不对,自己绝对不干打仗的脏活。

Service 层 (特种突击队) = 核心业务逻辑组件

Controller 检查参数没问题后,会把任务扔给 Service。所有的算账、判断、驳回逻辑(比如你昨晚遇到的那个忘记写 result = … 的内鬼)全在这里发生。这是你的主战场!

Mapper/DAO 层 (地下联络员) = 触发数据库的开关

Service 算好账了,决定要修改数据库,就会呼叫 Mapper。Mapper 会立刻带着 MyBatis 这个翻译官,一头扎进 MySQL 数据库,执行最终的“斩首行动”。

5.🔍 第五集团军:隐藏的雷达与黑匣子(你必须懂的生存工具)
Swagger / Knife4j (战地雷达说明书) (前端最爱)

后端把上面那一套写完后,你怎么知道接口地址是什么?参数怎么传?这个工具会自动扫描后端的 Controller,生成一个极其漂亮的在线文档,甚至能直接在页面上发请求测试。以后找后端要接口,直接让他发 Swagger 地址!

Logback / SLF4J (战地黑匣子日志) (保命神器)

后端没有你熟悉的 Chrome console.log 面板!代码部署到几千公里外的 Linux 服务器上,如果跑崩了,你看不见摸不着。全靠后端代码里打的 log.info() 或 log.error() 记录下运行轨迹。系统一瘫痪,老兵们全都在黑乎乎的终端里查日志,这就是后端的“眼”。

6.后勤
🚢镜像(Image):绝对静止的“预制兵营模具”

  • 大白话: 咱们不扯什么操作系统层面的虚拟化。你就把它想象成一个“超时空冷冻胶囊”或者“连带地基一起打包的预制饭店”。

  • 战略意义: 以前你把代码交给运维,运维得在服务器上手动装 JDK、装 Redis、配环境变量,稍微有点版本不对,系统就当场崩溃(经典推诿:“在我电脑上明明是好的啊!”)。

  • 现在有了镜像,你在本地把代码、JDK、配置环境,甚至连操作系统的壳子,全部“咔嚓”一下拍个快照,冻结成一个绝对静止的、死板的“模具”。这个模具拿到全世界任何一台电脑上,里面的东西都一模一样,绝对不会缺胳膊少腿!

Docker:降维打击的“超级集装箱运输舰”

  • 大白话: 如果“镜像”是那个预制饭店的模具,那 Docker 就是负责装载、运输并且一键把饭店“盖”起来的超级运输舰和起重机。

  • 战略意义: 服务器上装了 Docker 之后,你只需要下达一条指令:docker run 你的镜像。Docker 就会立刻把那个冷冻的“镜像”解冻,瞬间变成一个活生生、能接客的饭店(这就叫容器 Container)。

  • 它把所有的环境配置都隔离在集装箱里,你可以在一台服务器上同时跑 5 个不同版本的系统,互不干扰。这就叫工业化大生产,扫平一切后勤障碍!

7.情报安全
HTTPS 密钥:最高级别的“绝密通讯密码本”

  • 大白话: 你的前端页面和后端接口在互联网上聊天,中间要经过无数个基站和路由器。如果用传统的 HTTP,你们就像在广场上拿着大喇叭喊:“喂!我的账号是admin,密码是123456!”路过的黑客哪怕是个实习生都能听得一清二楚。

  • 战略意义: HTTPS 密钥就是一对“恩尼格玛密码机”。

  • 公钥(发给所有人的锁): 你在前端页面里放一把打开状态的锁,用户填完密码,立刻用这把锁锁上,变成一堆乱码扔到网上。

  • 私钥(藏在后端的钥匙): 这把钥匙死死攥在你的 Docker 后端手里。网上哪怕有人截获了那个锁上的盒子,没有私钥,他们就算用超级计算机算上一百年也打不开。这保证了你的数据在运输线上的绝对安全。

换证书(SSL 换防):定期的“密码本销毁与重置”

  • 大白话: 既然是密码本,就不能用一辈子,万一哪天私钥被内鬼泄露了呢?所以国际情报局(CA 认证机构)规定,所有的安全证书(密码本)都必须有保质期(以前是一年,现在通常是 90 天)。

  • 战略意义: “换证书”就等于全军定期换防,启用全新的密码本。
    每隔几个月,你得去权威机构申请一套全新的公钥和私钥,然后替换掉服务器上旧的。如果你忘了换,旧密码本一过期,浏览器就会立刻拉响最高级别的红色警报:“该网站连接不安全!”,直接把你的用户全部挡在门外。

二、项目启动(cursor)

  1. 进入项目目录
    cd d:\web\xxx
  2. 常用启动方式(推荐 dev 环境)
    方式 A:Maven 直接跑(开发最常用)
    mvn spring-boot:run "-Dspring-boot.run.profiles=dev"
    方式 B:先打包再运行
    mvn clean package -DskipTests java -jar target\blade-api.jar --spring.profiles.active=dev
    打包后的 jar 名是blade-api(见 pom.xml 里 bladex.project.id)。

三、运行报错问题解决
1.终端写命令报错

原因
在 PowerShell 里直接写:

mvn spring-boot:run -Dspring-boot.run.profiles=dev
-Dspring-boot… 会被 PowerShell 拆开,Maven 实际收到的是类似 .run.profiles=dev 这种东西,所以报错:
Unknown lifecycle phase ".run.profiles=dev"

正确写法(任选一种)
方式 1:给 -D 参数加引号(推荐)

cd D:\web\xxx
mvn spring-boot:run "-Dspring-boot.run.profiles=dev"
方式 2:用项目脚本(已写好引号)

cd D:\web\xxx .\start-dev.ps1

方式 3:停止 PowerShell 解析

mvn --% spring-boot:run -Dspring-boot.run.profiles=dev
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 7:01:06

告别pip install .失败:手动修改causal-conv1d的setup.py强制编译的保姆级操作

深度解析causal-conv1d编译失败问题:从源码修改到成功安装的全流程指南在深度学习项目开发中,遇到第三方库安装失败是再常见不过的问题。特别是当涉及到需要编译CUDA扩展的库时,各种环境依赖和配置问题往往会让开发者头疼不已。causal-conv1d…

作者头像 李华
网站建设 2026/5/27 6:57:44

评测全网10款主流降AIGC软件:帮你锁定达标神器

AI写作工具的兴起让论文写作和内容创作变得高效又便捷,很多学生和职场人都开始依赖这类工具提升效率。然而,随着AIGC检测技术不断升级,越来越多的人发现,自己用AI生成的内容越来越容易被识别出痕迹。无论是高校论文查重系统&#…

作者头像 李华
网站建设 2026/5/27 6:52:09

Node.js API安全审计实战:从漏洞扫描到RBAC加固的完整指南

1. 项目概述:一次迟来的安全审计 那天下午,我正打算给一个内部管理接口加个新功能,顺手在浏览器里敲了个路径,结果发现我竟然能直接访问到所有用户的列表数据,连登录都不用。那一刻,我后背一凉,…

作者头像 李华