- 博客(226)
- 收藏
- 关注
原创 第十四篇:AI面试——2026年的“默认项”不是“加分项”
这是本系列的最后一篇,但可能是最重要的一篇。2026年的Java面试,格局已经彻底变了。如果你还认为“会背八股文”就能拿Offer,那你大概率连简历筛选都过不了。AI已经不是“加分项”,而是“默认项”。就像2020年面试官问“你会用Git吗”一样,2026年的面试官默认你是会用AI辅助开发的。区别只在于:你是“把AI当搜索引擎用”,还是“把AI深度集成到了你的架构里”。这篇文章的任务:告诉你面试里怎么聊AI才不像“只会调API”,怎么把AI能力和你的Java技术栈结合起来。Java基础。
2026-07-16 12:39:41
186
原创 第十三篇:系统设计——把前面学的所有技术串起来
系统设计是面试的终极boss。前面所有章节(Java基础、MySQL、Redis、MQ、微服务……)都是"零件",系统设计就是"把这些零件组装成一台能跑的机器"。面试官考系统设计,本质上不考你"知不知道这个技术",而是考你"在多个技术之间怎么权衡、怎么选型、怎么兜底"。“为什么选这个方案?→ 考你的选型能力。“这里挂了怎么办?→ 考你的容错意识。“QPS翻10倍怎么办?→ 考你的扩展性思考。这篇文章选了四个经典面试题:秒杀系统、短链系统、排行榜、IM系统。
2026-07-16 12:39:26
173
原创 第十二篇:设计模式——23种模式,本质上就是6种原则
设计模式是面试里**最容易被"妖魔化"**的一块。很多人觉得设计模式很高深,要背23种模式的名字、结构图、适用场景……太痛苦了。但设计模式的本质就一句话:针对特定问题的"经典解决方案"。就像下棋有"开局套路"一样,写代码也有"套路"。这些套路是前人总结出来的,你不需要重新发明轮子,只需要知道"遇到什么问题,用什么套路"。这篇文章的核心就一条线:6大原则 → 23种模式 → Spring里用了哪些。
2026-07-16 12:39:06
154
原创 第十一篇:网络与操作系统基础——后端工程师的“底层常识“
网络和操作系统是后端工程师的"底层功底"。面试考这块,不要求你像网工一样深,但核心概念必须懂,而且要能和你日常开发联系起来。这篇文章的任务:让你用常识理解网络和OS的基础概念,而不是背一堆RFC文档。
2026-07-16 12:38:55
226
原创 第十篇:Docker & K8s——标准化应用的“集装箱“和“码头调度中心“
Docker和Kubernetes(K8s)是"云原生"时代的基石。①你的应用怎么打包和交付的?②上了生产环境怎么管理、怎么扩缩容?Docker解决了什么问题?你以前上线一个Java应用:打Jar包 → 扔到Linux服务器上 → 装JDK → 配环境变量 → 装Redis客户端 → 装Nginx……搞了半天,换一台服务器又得重来一遍。更别说十台、一百台服务器了。把应用和它需要的所有环境(JDK、依赖库、配置文件)一起打包成一个"镜像",在任何装了Docker的机器上,一个docker run。
2026-07-15 18:56:44
77
原创 第九篇:微服务与分布式——把一个大系统拆成多个小服务
微服务是Java面试里**最“唬人”**的一块。什么服务注册、服务发现、负载均衡、熔断降级、分布式事务、分布式ID……名词一大堆,感觉很高大上。但微服务的本质就一句话:把一个系统拆成多个小系统,各自独立部署。为什么要拆?因为一个系统太大,100个人改一个代码仓库,天天冲突;一台服务器扛不住所有流量,一个功能挂了整个系统都瘫了。拆开之后问题就来了——拆开的服务之间怎么通信?怎么知道对方在哪?对方挂了怎么办?怎么保证数据一致性?Spring Cloud 就是解决这些问题的“工具箱”。
2026-07-15 18:56:13
126
原创 第八篇:Spring Boot——把配置从XML搬到了注解里
Spring Boot是Java后端开发的事实标准。①自动配置是怎么实现的?②IoC和AOP的底层原理是什么?很多人一上来就背注解的源码,背得滚瓜烂熟但说不清“这东西到底解决了什么问题”。Spring Boot的本质就一句话:把Spring原来那一大堆XML配置全给你自动配好了,你只需要写业务代码。你以前用Spring MVC,要手动配:数据源、事务管理器、视图解析器、拦截器……一大堆XML。Spring Boot说:“别配了,我按业界主流约定给你配好,你想改再改。
2026-07-15 18:55:38
138
原创 第七篇:消息队列(MQ)——就是个带存储的异步通信管道
消息队列(Message Queue,简称MQ)是分布式系统里最常用的解耦工具。消息怎么不丢、怎么不重、怎么不积压。MQ的本质是什么?就是两个系统之间的**“信箱”**。A系统把消息放进信箱,B系统从信箱里取。A不用管B在不在、能不能处理,B也不用管A什么时候发。就这么简单。所有复杂的功能(持久化、集群、事务消息)都是围绕“信箱怎么更可靠”做的增强。面试时MQ要掌握到什么程度?选型理由 + 怎么保证消息不丢 + 怎么保证不重复消费 + 消息积压怎么处理。这篇文章就按这个思路来讲。
2026-07-15 18:55:06
139
原创 第六篇:Redis——就是个分布式共享Map
Redis是面试里仅次于MySQL的第二大重灾区。很多人把Redis说得很玄乎——“高性能缓存数据库”、“支持多种数据结构”、“分布式锁”……别被这些词唬住。Redis的本质就三句话:就是个Map——存键值对的,和HashMap没本质区别。这个Map在内存里——所以读写极快,微秒级。这个Map是独立部署的——A服务能访问,B服务也能访问,解决了“共享数据”的问题。你把这个本质抓住了,后面所有的持久化、集群、淘汰策略,都是围绕着“怎么让这个共享Map不丢数据、不宕机、装得下更多数据”做的工程化保障。
2026-07-15 18:54:34
332
原创 第五篇:MySQL——数据库就是个存数据的“大仓库”
MySQL是面试的绝对C位。你几乎不可能遇到一场不考MySQL的Java面试。很多人觉得MySQL难,是因为知识点太散:索引、事务、隔离级别、锁、日志、优化……每个点都能问出花来。但它们的本质都很简单。怎么存得快→ 存储引擎怎么查得快→ 索引怎么不出乱子→ 事务+锁把这三个问题搞明白,MySQL就通了。面试高频题:“InnoDB和MyISAM有什么区别?为什么现在都用InnoDB?
2026-07-15 18:54:01
246
原创 第四篇:JVM——Java程序跑在了一台“虚拟电脑”上
很多人觉得JVM是Java面试里最“玄学”的一块,什么堆栈方法区、垃圾回收算法、类加载机制……听起来像天书。别慌。JVM的本质就是一台“虚拟的电脑”。类加载器= 把.class文件(你的代码)装进这台电脑的“硬盘”。内存区域(运行时数据区)= 这台电脑的“内存条”。执行引擎= 这台电脑的“CPU”,负责执行字节码指令。垃圾回收器(GC)= 这台电脑的“自动清洁工”,定时把内存里没人用的垃圾扫走。你把JVM想象成一台装了特殊操作系统(Java字节码)的虚拟电脑,所有的问题就迎刃而解了。
2026-07-15 18:53:27
442
原创 第三篇:并发编程——多线程就是多个“服务员“同时干活
并发编程是Java面试的分水岭。前面那两篇(Java基础、集合框架)就算你背得再熟,也只能算"合格"。一旦进入并发编程的环节,面试官就知道你是"会用框架"还是"真懂原理"了。这篇文章的核心就一句话:并发编程的本质是多个线程共享同一份资源,你得保证不出乱子。别被"并发"、“并行”、"线程安全"这些词吓到。你想想现实中的餐厅——多个服务员(线程)同时接待客人,共用同一本菜单(共享资源),怎么保证菜单不会被撕烂、订单不会被搞混?这就叫并发控制。
2026-07-15 18:52:55
346
原创 第二篇:集合框架——从HashMap说起,一切皆是数据结构
集合框架是面试的绝对重灾区。几乎每一场Java面试都会问到HashMap,而HashMap一问就能问出你的水平——是停留在"会用"层面,还是真的看过源码。这篇文章的核心就一句话:Java集合框架就是一堆数据结构的封装。你把数据结构学明白了,集合框架根本不用背。ArrayList就是动态数组,LinkedList就是双向链表,HashMap就是哈希表,TreeMap就是红黑树。就这么简单。
2026-07-15 18:52:22
595
原创 第一篇:Java基础——一切从“类“和“Map“开始
Java基础是面试的"入场券"。很多人一上来就背"封装继承多态"、“重载重写区别”、“String和StringBuilder的区别”……背得滚瓜烂熟,面试官一问"为什么这样设计",直接卡壳。这篇文章的任务只有一个:让你用常识理解Java基础,而不是用记忆力。
2026-07-15 18:51:39
313
原创 第18章:激活函数——神经元的“点火开关”
上一章我们把多层网络的结构搭好了。输入经过第一层权重矩阵,得到线性变换的结果,然后进入激活函数,输出给下一层。再经过第二层权重矩阵,再进入激活函数……如此反复。但你有没有注意到一个奇怪的地方:如果每一层的输出都只是「权重矩阵乘以输入向量加上偏置」——那不管堆多少层,最终的结果还是一个线性变换。两个线性变换的复合,仍然是线性变换。十个也是。一百个也是。换句话说,如果没有激活函数,一个一百层的网络跟一个单层网络在数学上没有任何区别——它们都只能画直线。激活函数的作用,就是打破这个「线性」的牢笼。
2026-07-11 23:23:29
295
原创 第17章:多层感知机——把神经元叠起来
前面两章我们做了两件事。第15章讲了怎么判断一个模型是真的学会了还是在背答案。第16章讲了怎么用梯度下降一步步地调参数。这两样东西——评估方法和优化方法——是所有机器学习模型都要用的。线性回归用它,逻辑回归用它,SVM也用它(虽然SVM的优化形式稍微特殊一点)。到了深度学习,它们更是核心。现在要问的是:这些方法要往什么东西上套?如果只用一个神经元——就像逻辑回归或感知机那样——你能解决XOR问题吗?不能。我们在第3章已经聊过了,那个单层感知机被XOR彻底难住了。但如果堆两层呢?这一章我们就看两件事。
2026-07-11 23:20:53
296
原创 第16章:下山,先学会怎么迈步——梯度下降
经典机器学习部分结束了。你手里现在有函数、向量、矩阵、导数、概率、熵,有线性回归、逻辑回归、SVM、决策树和随机森林,还有过拟合、欠拟合和验证集。按道理,我们已经可以进入深度学习了。但在走进多层神经网络之前,还有一个环节必须单独拎出来讲。你回想一下线性回归那一章。我们是怎么找到“最好的那条线”的?我说了一句“计算误差平方和对w和b的偏导数,然后反复朝下降最快的方向挪动”——一笔带过了。在逻辑回归那一章,我又说了一句“用交叉熵作为损失函数,然后用梯度下降来优化”——又一笔带过了。
2026-07-11 23:13:54
389
原创 第15章:模型的好与坏——过拟合、欠拟合与验证
前面三章我们聊了三个经典的机器学习模型。线性回归画一条直线穿过数据。逻辑回归在直线外面套一层Sigmoid壳,输出概率。支持向量机修一条最宽的马路来分开两类。决策树则是一路问问题,把数据切成越来越小的块。这些模型各有各的脾气,但它们共享同一个问题——你怎么知道你训练出来的那个模型,是真的"学会了"东西,还是只是"背下来了"?这个问题在机器学习里是根本性的,它几乎定义了这个领域的全部方法论。
2026-07-11 22:39:35
390
原创 第14章:集体智慧——决策树与随机森林
你注意到了吗——整个算法的核心是“怎么选最好的问题”。在每一步,你需要从所有特征和所有可能的取值里,挑出一个能把当前这堆数据“切得最干净”的问题。“最干净”的意思是:分出来的两堆,各自内部的标签越统一越好。比如你有一堆人,一半买、一半不买。你问“年收入大于50万吗?”左边是“是”,右边是“不是”。如果左边的人几乎都买,右边的人几乎都不买——那这个问题就是“好问题”。它把混乱的数据分成了两个纯净的组。衡量“混乱程度”的指标,就是我们在第10章讲过的熵。
2026-07-11 22:33:53
533
原创 第13章:数据的“升维打击”——支持向量机与核技巧
前面两章我们聊了线性回归和逻辑回归。一个是猜数字,一个是猜类别,但底层逻辑是一回事:画一条线(或一个超平面)把数据串起来或切开。但你肯定已经想到了一个问题:如果数据天生就没法用一条直线切开呢?比如一个圆形的区域里全是红点,红点外面围了一圈蓝点——你在二维平面上永远画不出一条直线把它们分开。逻辑回归也好,感知机也好,碰上这种情况就束手无策。在更高的维度上,原来缠在一起的东西突然就变得可以被一刀劈开了。这个操作有一个专门的名字,叫“核技巧”。
2026-07-10 18:49:56
285
原创 第12章:从“多少”到“哪一类”——逻辑回归
上一章我们干了件事:用一条直线预测房价。输入面积,输出价格。输入是连续的数,输出也是连续的数。这类问题叫“回归”——猜一个数字。但AI面临的大多数问题,不是“猜多少”,而是“是哪一类”。你手机相册里有一张照片,AI要判断“这是猫还是狗”——只有两个答案。你的邮箱收到一封新邮件,AI要判断“这是垃圾邮件还是正常邮件”——只有两个答案。医生拿到一张CT片,AI要判断“是良性还是恶性”——还是只有两个答案。这类问题叫“分类”——猜一个类别。线性回归能直接用来做分类吗?勉强能,但效果很糟。
2026-07-10 18:49:33
356
原创 第11章:直线上的智慧——线性回归
好。数学工具凑齐了,现在我们要让它们真刀真枪地干活了。第一个活儿是“预测一个数字”。你有一个朋友要卖房子。他问你:“根据现在的行情,我家这套房子大概能卖多少钱?”你打开房产App,输入面积、卧室数、房龄——App两秒钟之后给你报了一个价。这个App里那个“估价模型”做的事情,就叫回归。更具体地说,大概率是线性回归。它是机器学习里最古老、最基础、但也最顽强的算法。所有后面那些花哨的东西——决策树、随机森林、神经网络——它们的目标本质上跟线性回归一样:从数据中找到一个函数,把输入变成正确的输出。
2026-07-10 18:49:09
492
原创 第10章:从不确定中学习——概率与信息论极简入门
到目前为止,我们聊的所有东西都是"确定的"。函数是确定的——输入3,f(x)=2x+1 永远输出7,不会有第二个答案。向量和矩阵的运算也是确定的——你给一个矩阵和一个向量,乘法结果只有一个。导数也是确定的——一个函数在某一点的导数就是一个具体的数,不跟你打马虎眼。但AI面对的真实世界,不是这样的。你拍一张猫的照片给AI看。照片可能模糊,可能在逆光,猫可能只露出半个屁股。AI判断它是猫——这个判断有几分把握?它不知道。它只能猜一个概率,比如"95%是猫,5%不是猫"。或者你让大模型给你推荐一部电影。
2026-07-10 18:47:50
338
原创 第9章:变化的语言——导数、偏导数,以及那个极重要的链式法则
好,函数有了,向量有了,矩阵也有了。这三块砖铺出了一个静态的世界:数据以向量的形式存在,被矩阵变换来变换去,目标是逼近某个理想中的函数。上一章结尾我们提了一句,神经网络就是反复调整矩阵里的数字,直到它能把输入变成正确的输出。但"反复调整"四个字说起来轻松,做起来完全不是一回事。你面对的是一个有几百万甚至几十亿个参数的庞然大物,每调整一个数字,整个输出都会跟着变。你往哪个方向调?调多少?怎么知道调完之后是变好了还是变坏了?要回答这些问题,我们需要一门描述"变化"的语言。这门语言叫微积分。
2026-07-10 18:47:34
189
原创 第8章:把向量组织起来——矩阵与线性变换
上一章我们说了,所有的数据进入AI系统后都会变成向量。一张猫的照片变成一个几万维的向量,一段文字变成一个几百维的向量。但你有没有想过一个问题:如果一张图片有几万个像素,那一个训练集里可能有几百万张图片——这就是几百万个向量。一个一个地处理,得算到什么时候?我们需要一个更大的“容器”,能把一堆向量同时装进去,一次性完成运算。这个容器叫矩阵。矩阵真正的威力在于:它可以一次把一整批向量同时变换。如果你把一百万张图片的向量并排放成一个矩阵,那么“矩阵乘矩阵”这一步,就同时完成了一百万次“矩阵乘向量”。
2026-07-09 19:03:58
157
原创 第7章:坐标与箭头——向量的几何直觉
上一章我们聊了函数——输入变成输出的规则。但AI处理的数据,到底长什么样子?一张图片怎么输入给函数?一段文字又怎么输入?答案是一个词:向量。在AI内部,所有的数据——不管是一张猫的照片、一句中文、还是一段音频——最终都会被打包成一种统一的格式:一串数字。这串数字,就叫向量。你可能在高中数学里听说过向量。那时候它可能被画成一条有方向的线段,让你算夹角、算模长。听起来跟AI没什么关系对吧?
2026-07-09 18:22:23
131
原创 第6章:函数——AI世界里真正的“主角”
讲完这一章,你可能会有点慌:“你说了这么多,但我好像还是不会算函数啊?放心。这个系列不会让你做任何计算。你不需要记住任何公式,不需要解任何方程,不需要画任何曲线。函数就是把输入变成输出的规则。AI的本质,就是找到这个规则。剩下的——怎么找、用什么工具找、找到之后怎么用——是我们后面几十章慢慢展开的内容。而你有了"函数"这个地基之后,后面的每一块砖都会稳稳地落在上面。下一章我们聊向量。如果说函数是"规则",那向量就是"原材料"。AI处理的所有数据——图片、文字、声音——到了机器内部,全都是向量。
2026-07-09 18:00:38
147
1
原创 第5章:从规则到数据——范式的转移
1992年,日本政府耗资8.5亿美元的第五代计算机项目正式宣告结束。十年前启动的时候,这个项目的目标极其宏大:造出能用自然语言对话、能理解图像、能做知识推理的计算机。当时日本正处在经济腾飞的巅峰,全球科技界对它的预期是“下一代计算标准的制定者”。结果十年过去,几乎没有任何一项当初承诺的目标真正实现。第五代计算机的失败,是整个专家系统和符号主义路线的最后一根稻草。到1990年代中期,研究者们已经不得不承认一个令人不安的事实:把人类知识一条条写成规则、再塞进电脑——这条路,走不通。
2026-07-09 17:43:17
276
原创 第4章:专家系统的辉煌与局限——知识工程之路
上一章我们聊了感知机的陨落。1958年还被《纽约时报》捧为"能意识到自身存在"的机器,到了1969年就被明斯基和帕珀特用300多页数学证明判了死刑。神经网络研究几乎从主流学术圈消失,整个领域寒气逼人。但就在神经网络被按下暂停键的同一时期,人工智能的另一条路线却悄悄开了花。这条路跟"让机器自己学习"的思路截然相反——它走的是另一条逻辑:机器学不会没关系,我们把人类专家的知识直接"灌"给它。这条路的名字,叫专家系统。
2026-07-09 13:35:15
725
原创 第3章:感知机的春天与寒冬——第一次希望破灭
1958年7月,纽约时报在头版刊登了一条科技新闻。标题不长,但内容足以让任何一个读到它的人心跳加速——“海军披露新型电子计算机‘能思考’”。文章开头是这么写的:“美国海军今天展示了一台电子计算机的雏形,它有望在早期阶段就具备行走、说话、观察、书写、自我复制,以及意识到自身存在的能力。这台机器叫“感知机”。创造它的人叫弗兰克·罗森布拉特,那一年他刚满三十岁。如果你觉得这个开头听起来有点耳熟——没错,跟今天媒体描述ChatGPT的方式几乎一模一样。
2026-07-09 13:14:30
370
原创 第2章:达特茅斯的夏天——一个名字的诞生
1955年8月,一个二十七岁的年轻人写了一封简短的提案,寄给洛克菲勒基金会。提案的标题是“关于举办达特茅斯学院人工智能夏季研讨会的提案”。字不多,但开头第一段写得极其狂妄。原文是这样的,我翻译给你听:“我们提议,在1956年夏天,于达特茅斯学院举办一个为期两个月的人工智能研讨会。我们相信,如果一组经过精心挑选的科学家在一起工作一个夏天,那么学习的每一个方面或智能的任何其他特征,原则上都可以被精确地描述,从而使机器能够模拟它。
2026-07-09 12:26:23
650
原创 第1章:图灵的奇想——机器能思考吗?
1950年,英国曼彻斯特。一个三十八岁的男人在一本哲学杂志上发表了一篇论文。杂志叫《Mind》——中文译作《心灵》——是当时英语世界最顶尖的心灵哲学刊物之一。一篇关于机器的文章出现在哲学杂志上,本身就已经有点奇怪了。更奇怪的是,这篇论文的开头第一句话,直接抛出了一个让整个学术界都坐立不安的问题。“我提议考虑这个问题:机器能思考吗?提出这个问题的男人叫艾伦·图灵。你可能听过他的名字——破译了德军Enigma密码的天才,计算机科学的奠基人。
2026-07-09 12:26:04
352
原创 这个系列怎么读,以及我们为什么从“函数”开始
我觉得最好的读法还是顺着顺序来——因为后面的每一篇都默认你读过前面的。但你要是哪篇读着卡住了,就合上屏幕歇两天,没关系。有些概念得靠大脑在后台偷偷加工一夜才能消化,你越急它越不合作。也用不着记笔记。每一篇里真正要紧的道理,我会用不同的话翻来覆去地讲。你只要在读的时候让那些画面和比喻在脑子里留下个印子就行,它们自己会串起来的。至于你担心自己“数学不好”或者“不是学这个的料”——大可不必。这趟旅程的设计前提只有一个:你不需要提前会任何东西,只需要带着好奇心来。就这么多。行,那我们出发。
2026-07-09 12:25:27
403
原创 Agent 与 LLM 的交互协议:从 ReAct 到工具调用
ReAct(Reasoning + Acting)是一种 Prompt 范式,要求 LLM 在每一步先输出推理过程,再输出行动决策。这种模式最早由 Google 在 2022 年提出,现已成为 Agent 系统的默认选择。核心优势可解释性:开发者能追踪模型的决策路径,调试错误错误恢复:当工具返回意外结果时,模型可在下一轮思考中调整策略多步推理:复杂任务天然需要多轮思考-行动循环Agent Host 是唯一的协议翻译者向下(工具层):通过 MCP 发现和调用工具(JSON-RPC)
2026-07-08 11:23:33
395
原创 MCP 完全指南:从零开始掌握模型上下文协议
是由 Anthropic 发起、现由 Linux Foundation Agentic AI Foundation 治理的开放标准协议。它定义了一套标准化接口,让 LLM 应用能够以统一的方式连接外部工具、数据源和提示模板。MCP 借鉴了开发工具中 LSP(Language Server Protocol)的成功经验——LSP 统一了编辑器与语言服务器之间的通信,MCP 则统一了 AI 应用与外部系统之间的通信。MCP 不定义 LLM 如何被调用,而是定义 LLM 周围的环境如何被接入。层级组件。
2026-07-07 19:03:18
427
原创 第19篇 · Spring Boot启动源码浅析:从main方法到应用就绪的幕后之旅
最终会调用方法。这是 Spring IoC 容器的“总调度中心”。@Override// 步骤1:容器启动前的准备与状态验证// 步骤2:获取底层 BeanFactory// 步骤3:配置 BeanFactory 的标准特征try {// 步骤4:允许子容器对 BeanFactory 进行后置处理// 步骤5:实例化并调用所有 BeanFactoryPostProcessor// 步骤6:注册 BeanPostProcessor。
2026-06-27 23:05:57
142
原创 第18篇 · Bean生命周期全解密:从出生到销毁的完整旅程
这个示例实现了一个自定义的,对所有 Bean 初始化前后打印日志。import org// 在初始化之前执行 System . out . println("🔧 [前置] " + beanName + " - 准备初始化");
2026-06-27 23:04:25
334
原创 第17篇 · Linux部署实战:让项目真正跑在云端
代码写完了,接口调通了,接下来要做的是把项目部署到服务器上,让其他人也能访问。如果你只在本地跑过 Spring Boot 项目,那你可能对部署这件事还有一些陌生——打包命令是什么?服务器上怎么装 Java?怎么让项目在后台一直运行,关掉终端也不会停?这一篇我们用一篇完整的实战指南,把这些问题全部解决。从 Linux 基础命令到云服务器选购,从环境安装到项目部署,完整走一遍。
2026-06-27 23:02:54
134
原创 第16篇 · 博客系统全流程实战:从零到一构建可运行的Web应用
前面十五篇,我们把 JavaEE 规范、Servlet、Spring 核心原理、数据访问、AOP、事务、自动配置都过了一遍。知识点拆开讲是一回事,把它们组合在一起解决实际问题,是另一回事。这一篇,我们不再拆解某个组件的原理,而是用,从零到一构建一个完整的博客系统后端。这个项目会用到前面讲过的几乎所有知识:IoC 容器管理 Bean、Spring MVC 处理请求、MyBatis-Plus 操作数据库、拦截器做登录校验、JWT 做身份认证、BCrypt 加密密码、全局异常处理统一返回格式。
2026-06-27 22:59:10
184
原创 第15篇 · Spring Boot自动配置探秘:约定优于配置的底层逻辑
理解了自动配置的原理,我们就可以自己动手写一个Starter了。Starter 的组成:依赖管理模块,负责引入所需的依赖和模块:自动配置模块,包含配置类和自动配置声明开发步骤第一步:创建 autoconfigure 模块,编写自动配置类import org} }} }} }} }import org} }} }} }} }import org} }} }} }
2026-06-27 22:56:45
543
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅