行业资讯

如何以前端视角(非0基础)学 Java ?

发布时间:2026/8/17 21:03:31
如何以前端视角(非0基础)学 Java ? 本文分享我以一个前端开发人员的身份学习 Java 和 Spring boot 的一些经历和感受。开始前段时间【智语】项目发布了以后我休息了两天然后就开始看关于 Java 和 Spring boot 的教程花 2-3 天时间开发了一个 demo 使用 docker 发布到我的服务器上去了。Java 我上大学的时候就学过毕业之后的前 2 年我一直用 C# 写代码和 Java 很像。后来做了前端开发我也一直写 nodejs 的服务端项目。我一直都不是一个纯前端我是全栈开发所以我才能如此快的去学习和实践 Java 和 Spring boot 。今年下半年我打算全面进击 Java 全栈出一个完整系列的教程从前端的视角非 0 基础学习 Java 全栈开发带领学员成为真正的 web 全栈工程师。同时我也计划用 Java Vue3 把 划水AI 重构一遍。我的风格就是这样不做 PPT 不做 demo 做真实上线的项目让你能真实使用和体验。“真全栈”时代2023 年春天第一次有人提“前端已死”。那会儿虽然没死成但也发生了一点变化开始关注全栈方向了。2024 年春天我刚发布 划水AI 很快就有很多同学参与进来因为大家都觉得全栈的时代要到了纯前端是没有发展前途的。不过当时还是以前端为主外加 nodejs 扩展的服务端能力全栈是前端的附加能力加分项。但 2 年之后的今天完全不一样了无论是大环境原因还是 AI 编程普及的原因前端的生存空间几乎没有了。之前是前端 node 现在要做“真全栈” 在国内 java 就是最主流的 web 服务端技术栈。当然前端学 java 不是为了和 java 人员竞争java 也很倦而且人家多年经验了你凭啥学2个月就和人家竞争你也竞争不过他们。前端学 java 是要转型为全栈开发前后端都能做一个人干两个角色。语言Java 可能是最好理解的编程语言了。Java 从一出生就是面向对象语言设计是比较完整的。而 JS 从一开始就是一个简单的脚本后来随着互联网的发展慢慢才有了标准和 TS 语法。所以 JS 一开始设计就没考虑全面导致后面发展一只打补丁。例如对于异步的处理Java 从一开始就是多线程的可以创建多个 thread 这很容易理解。而 JS 一开始只有 setTimeout 后来互联网发展又设计了 Ajax 后来嫌写法复杂又设计了 Promise 再后来还嫌复杂又设计了 async …如果你是一名编程初学者你会感觉 Java 比 JS 容易。所以 JS 你都学的会Java 肯定也没问题。而且 JS 还参考了 Java 的语法大概 90% 的语法的书写方式都是一样的。另外现在 AI 编程普及了你根本不用关注语法细节能看懂代码结构和执行逻辑就可以。服务端思维纯前端开发转型全栈最大的障碍不是语言、不是框架和工具而是服务端思维。前端开发的是页面是客户端加载到客户的浏览器运行的每个客户都独享一份程序。网页的数据结构设计只考虑一个人的就行了一般不会太多。至于网络上的“一次性加载10万条数据…” 这只是面试题真实工作中几乎没有这种场景。网页加载的快慢一般也不用自己操心静态资源有 CDN 不会太慢API 接口慢了直接找后端开发人员。至于那些网页渲染卡顿、内存泄漏等一年也遇不到两次。网页都是在浏览器这个环境下运行的获取数据、提交数据都是通过后端 API 接口。你获取的数据是怎么来的你提交的数据要往哪儿去这些你都不知道跟你没关系。服务端就不一样了它要承接所有用户的流量和数据。流量大了如何处理数据多了如何处理万一遇到错误又该如何处理这种思维方式和前端是完全不一样的。所以纯前端开发在技术视野上、产品流程上有很大的局限性。服务端思维就是要突破这种局限性以全栈全流程的视野去看项目。Spring 框架Java 的 Spring 框架的设计和生态应该是这个世界上最适合 web 开发的框架了国内都普及了。我这几天学习使用 Spring 我发现用它开发 web 服务端真的超级简单你只需要按照它设计的规范来做即可。你能想到的它都有你想不到的它也有。但是你如果直接上手学习 Spring 可能会比较吃力尤其是你又刚接触 Java 那就更吃力了。我更建议大家通过 Nest.js 这个 Nodejs 框架来入手。注意是 nest.js 不是 next.js 别搞混了。因为 nest.js 就是模拟着 Java Spring 框架设计的两者非常相似。而你又非常熟悉 JS 语法那学起来肯定很快。你花 1-2 周搞定 nest.js 再去学习 Spring 就会感觉非常熟悉哪怕你刚入门 Java 也很好上手。磨刀不误砍柴工。反之如果你求快直接上手学 Java 和 Spring 很可能因为学习成本太高而厌学半途而废。我们日常工作加班已经很累了再业余学习一定要找一个低成本的途径才具有可行性。不要一时自我感动自我亢奋觉得自己一定能行的然后三分钟热度很快没劲儿了。无论 Nest.js 还是 Spring 它既然是服务端框架那就是开发服务端 API 。你作为前端开发每天接触最多的就是 API 。一个请求输出什么、输出什么、什么格式、是否需要 token … 这是你最熟悉的。所以以前端视角去学习 Java 框架并不是从 0 开始学你已经有一部分基础了。通过正确的学习途径可以很快学会的。包管理器前端开发用 npm 管理使用 pakcage.json 记录依赖或者 pnpm yarn 等每天都用。Java 开发使用用 maven 管理使用 pom.xml 记忆依赖功能都是一样的。前端使用 npm 命令npm run dev npm run build npm run testJava 使用 maven 命令和 npm 命令作用是一样的mvn spring-boot:run mvn clean package以前端视角学习 Java 很多东西都可以做对比的一旦有了对比参照就很快学会。环境变量前端是使用.env作为环境变量来存储一些常量、配置、密钥等但 Spring 框架是使用application.properties文件来存储的。但这个文件它是推荐提交到 GitHub 中的因为有些配置是代码的一部分要和团队共享。所以一些密钥不能放在这个文件中要放在其他文件。在本地开发环境下使用application-local.properties存储密钥不提交到 github但运行的时候要加 local 标识让 spring boot 去加载这个 local 文件mvn spring-boot:run -Dspring-boot.run.profileslocal如果是发布到生产环境 docker 容器化部署。使用.env文件存储密钥。docker 读取这个文件并创建为环境变量spring boot 会用到。注意spring boot 本地开发环境下是不会加载.env文件的这一点和前端开发不一样。其实如果你工作经验多、设计经验丰富的话你仔细想一下Spring boot 这种设计方式才是最合理的。.env本来就是环境变量就应该和项目配置区分开来分开层次不能混在一块。前端开发直接使用.env是有点太凑活事儿了。数据库前端开发用不到数据库网页上有一点数据用 localStorage 存储就够了浏览器内置的 indexedDB 几乎用不到。后端开发必备的就是数据库因为存储网站的数据、用户的数据这是最基本的能力。前端开发对数据库还是比较陌生的没用过也没写过 SQL 语句。初步学习数据库例如最常见的 mysql 关系型数据库你就把它看成几个 excel 表格。例如一个 user 数据表它就是一个表格包括了用户名、密码、邮箱等多列可以添加很多行。在绝大部分开发过程中我们也不需要手写 SQL 使用 Spring boot 自带的 ORM 工具或者 Mybatis-plus 即可使用代码 API 操作数据的增删改查就像你使用 localStorage 操作数据是一样的。基础的操作会很快入门。掌握了基础的功能在一个项目中实践好然后再去进阶连表查询、数据库优化、数据表拆分等等。缓存前端开发中有没有缓存有很多。例如 Vue 中的keep-alive缓存组件React 中的useMemouseCallback都是数据静态资源 HTTP 缓存cache-control—— 这还都是面试八股文问题呢肯定没少被背诵。缓存的目的就是为了避免重复创建使用之前的结果增加效率增加用户体验。服务端的缓存也是一个道理。例如一个博客网站的首页要获取热门文章列表这不用每次都从数据库获取尤其访问量比较大的时候每次都从数据库获取会比较慢。组好的方法就是把当前结果缓存起来设置 5 分钟的过期时间。5 分钟之内所有用户都会从缓存中获取结果速度会快很多。服务端一般使用 redis 服务器做缓存redis 会默认把数据存储在内存这样读写都非常快。虽然使用工具不一样但其设计方式、解决的问题、达成的效果都是一样的。不用从 0 学习。消息队列浏览器事件循环 Event Loop 的原理大家都知道吧典型的前端面试八股文。Event Loop 就是用消息队列实现的有了异步任务就去排队执行通过一个 queue 来管理任务。再有如果让你开发一个多文件上传系统选中多个大文件排队上传到服务器你也需要用到队列来实现。服务端有更多的场景需要消息队列例如一个接口请求之后要发送一个消息、发送一个邮件、把数据提交到另外一个服务这些不影响核心主流业务的都要通过消息队列来实现。如果没有消息队列那主任务就要等待这个任务去执行就会浪费很多时间。如果是多用户同时请求那就有可能被卡住造成更大的影响。服务端的消息队列可以使用 RabbitMQ 它还有可视化面板可以清晰的看到任务的消费情况。还没完今天先写这么多吧其实还有很多进阶内容后续我继续分享大家可以先关注我Jenkins 自动化部署docker 容器化部署日志 统计 报警k8s微服务这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容