前言
J2EE (現稱 **Jakarta EE**) 生態經歷了從重量級 EJB 到輕量級 Spring、再到雲原生微服務的演變。本文提供**2024 版系統化學習路線**,涵蓋**語言基礎、Web 基礎、框架生態、數據存取、分布式核心、雲原生、架構師素養**七大階段,每階段給出**核心知識點、推薦資源、實戰專案、避坑指南**,適合大學生、轉行者、初中級工程師系統規劃成長路徑。
階段 0:前置準備 (2 週)
| 項目 | 內容 | 標準 |
| 開發環境 | JDK 21 LTS、IntelliJ IDEA Ultimate、Maven/Gradle、Git、Docker、Postman | 能獨立建專案、跑測試、打包鏡像 |
| 計算機基礎 | HTTP/HTTPS、TCP/IP、DNS、Linux 基礎命令、SQL 基礎、正則表達式 | 能抓包分析、寫 SQL、部署 Linux |
| 學習方法 | Feynman 技法、主動回憶、間隔重複、項目驅動、輸出博客/筆記 | 建立個人知識庫 (Obsidian/Notion) |
階段 1:Java 語言核心 (6-8 週)
- 語法與 OOP:泛型、註解、Lambda/Stream、模塊系統 (JPMS)、Record、Sealed Class、Pattern Matching (JDK 21)。
- 集合框架:`List/Set/Map` 實現原理、併發容器、源碼閱讀技巧。
- 併發編程:JMM、volatile/synchronized/AQS、線程池、CompletableFuture、虛擬線程 (JDK 21)、Reactive Streams。
- JVM 核心:類加載、內存模型、GC 算法 (G1/ZGC)、調優工具 (Arthas、JFR、Async Profiler)、故障診斷實戰。
- IO/NIO/NIO.2:零拷貝、Netty 入門、文件系統 API。
推薦書單:《Effective Java 3rd》、《Java 核心技術 卷Ⅰ/Ⅱ》、《深入理解 JVM (第 3 版)》、《Java 併發編程實戰》、《現代 Java 實戰》
階段 2:Web 基礎與 Servlet 規範 (3-4 週)
- Servlet API:生命週期、Filter/Listener/Async Servlet、Servlet 6.0 (Jakarta EE 10)。
- Tomcat/Jetty/Undertow:連接器、容器、類加載器隔離、配置調優、原生映像支援。
- 前端基礎:HTML5/CSS3/ES6+、TypeScript、Vue 3 / React 18、Vite、組件庫 (Element Plus / Ant Design)、瀏覽器渲染原理、性能優化。
- API 設計:RESTful、OpenAPI 3.0/Swagger、JSON:API、GraphQL 入門、gRPC/Protobuf。
階段 3:Spring 生態全棧 (8-12 週) —— 就業核心
| 模塊 | 核心知識點 | 實戰專案 |
| Spring Core | IOC 容器啟動、Bean 生命週期、AOP 代理 (JDK/CGLIB)、事務管理、事件驅動、SpEL | 手寫迷你 IOC/AOP 框架 |
| Spring Boot 3.x | 自動配置原理、Starter 開發、配置綁定、Actuator 監控、GraalVM 原生映像 | 從 0 搭建企業級脚手架 |
| Spring MVC/WebFlux | DispatcherServlet、異步非阻塞、函數式路由、RSocket、WebSocket、SSE | 高併發即時通訊服務 |
| Spring Data JPA | Repository 抽象、查詢方法、Spec/QueryDSL、鎖、審計、多租戶 | 複雜報表查詢系統 |
| Spring Security 6 | Filter Chain、OAuth2/OIDC、JWT、方法級授權、CSRF/CORS、Reactive Security | 統一認證授權中心 |
| Spring Cloud 2023/Alibaba | Nacos 註冊配置、Gateway 网关、OpenFeign、Resilience4j 熔斷、Seata 分布式事務、Sleuth/Zipkin 鏈路追蹤 | 微服務電商/外賣系統 |
階段 4:數據存取與中間件 (6-8 週)
- MySQL 8.0 進階:索引 (B+樹/最左前綴/覆蓋/下推)、鎖 (行/間隙/Next-Key)、MVCC、Explain 分析、分表分庫 (ShardingSphere)、讀寫分離、HTAP (TiDB)。
- Redis 7:數據結構、持久化 (RDB/AOF)、主從/哨兵/集群、Lua 腳本、分布式鎖 (Redisson)、緩存穿透/擊穿/雪崩、熱 Key 探測。
- 消息隊列:RocketMQ / Kafka / Pulsar 對比、順序/事務/延遲消息、死信隊列、冪等消費、流式處理 (Flink/Spark Streaming 入門)。
- 搜索引擎:Elasticsearch 8.x 倒排索引、映射、DSL 查詢、聚合、集群架構、ILM 索引生命週期。
- 其他:MongoDB (文檔)、ClickHouse (OLAP)、MinIO (對象存儲)、Etcd/Consul (配置/服務發現)。
階段 5:分布式系統核心 (8-10 週) —— 架構師必修
| 專題 | 核心內容 | 經典論文/規格 |
| CAP/BASE/PACELC | 一致性模型、可用性權衡、延遲一致性 | Brewer's Conjecture, PACELC |
| 分布式共識 | Raft (etcd/Consul)、Paxos、ZAB (ZooKeeper)、Lease 機制 | Raft 可視化、In Search of an Understandable Consensus Algorithm |
| 分布式事務 | 2PC/3PC、TCC、Saga、Seata AT 模式、本地消息表、事務性異步 | Distributed Sagas, Seata 文檔 |
| 服務治理 | 註冊發現、負載均衡 (輪詢/一致性哈希/最小活躍)、熔斷降級、限流 (令牌桶/漏桶/滑動窗口)、超時重試、隔離 (Bulkhead) | Resilience4j, Sentinel, Hystrix (維護模式) |
| 可觀測性 | 三大支柱:Metrics (Prometheus)、Logs (ELK/Loki)、Traces (SkyWalking/Zipkin/Jaeger)、告警規則、SLO/SLI/SLA | Google SRE Book, OpenTelemetry |
階段 6:雲原生與 DevOps (6-8 週)
- 容器化:Dockerfile 最佳實踐、多階段構建、GraalVM Native Image、JLink 精簡 JRE、镜像安全掃描 (Trivy/Grype)。
- Kubernetes:核心對象 (Pod/Deployment/Service/Ingress/ConfigMap/Secret)、調度器、HPA/VPA/Cluster Autoscaler、Operator 模式、Helm/Kustomize、Service Mesh (Istio/Linkerd) 入門。
- CI/CD:GitLab CI / GitHub Actions / Jenkins Pipeline、自動化測試 (單元/集成/契約/混沌)、ArgoCD/GitOps、藍綠/金絲雀發布、回滾策略。
- Serverless:Knative、Cloud Functions、事件驅動架構、冷啟動優化。
階段 7:架構師綜合素養 (持續)
- 領域驅動設計 (DDD):戰略設計 (限界上下文、上下文映射)、戰術設計 (實體/值對象/聚合/領域事件/倉庫)、防腐層、CQRS/Event Sourcing。
- 系統設計面試:短網址、URL 縮短、分布式 ID、單點登錄、限流器、配置中心、即時通訊、Feed 流、秒殺系統、分布式鎖、幂等框架。
- 軟技能:技術文檔寫作、代碼評審、導師制、技術分享、英文文檔閱讀、開源貢獻、專利/論文。
學習節奏建議
全日制轉行 (6-9 個月):
階段 0-1: 2.5 月 → 階段 2: 1 月 → 階段 3: 2.5 月 → 階段 4: 1.5 月 → 階段 5: 2 月 → 階段 6: 1.5 月
在職進階 (12-18 個月):
每週 10-15h,按階段順序,每階段末完成一個 Demo 專案上 GitHub
避坑指南
- 不要陷入「教程地獄」:邊學邊寫,**每個知識點必須有代碼驗證**。
- 不要跳過基礎直奔框架:不懂 JMM/GC/IO 學 Spring Cloud 只會配置不會排查。
- 不要只看不練源碼**:挑 1-2 個核心類 (如 `HashMap`、`ArrayList`、`ThreadPoolExecutor`、`DispatcherServlet`) 深度閱讀。
- 不要忽視測試**:單元測試 (JUnit 5 + Mockito)、集成測試 (Testcontainers)、契約測試 (Pact) 是專業標配。
- 不要追新棄穩**:生產環境優先 LTS 版本 (JDK 21、Spring Boot 3.2、Spring Cloud 2023)、成熟中間件。
💡 核心心法:基礎決定上限,架構決定下限,工程化決定交付質量。路線圖是地圖,**項目是車,代碼是油,輸出是里程碑**。祝你在 Jakarta EE / Spring / Cloud Native 的道路上越走越遠!