Java 企业级开发教程
JavaSE 之后的第二层:从 Maven、HTTP 和数据库出发,进入 Servlet、Spring、MVC、Boot、持久化、安全、测试与部署。
Java Web、Java EE、Jakarta EE 与 Spring 生态
知识点:区分 JavaSE、Java Web、Java EE / Jakarta EE 与 Spring 生态的边界;理解 javax → jakarta 的历史变化及 Servlet、Validation、Persistence 等规范的位置;理解 Spring Framework、Spring MVC、Spring Boot 之间的层次关系;明确本课程目标:构建可上线、可测试、可维护的企业级单体后端
Maven 是什么:为什么学 Spring 前先学 Maven
知识点:理解构建、依赖管理、编译、测试、打包的统一工程问题;理解 groupId、artifactId、version 构成 Maven 坐标;知道 Spring、MyBatis 等第三方框架如何通过 Maven 进入 classpath
Web、B/S、C/S 与前后端分离
知识点:区分客户端、浏览器、前端、后端、服务器、API;理解 Request / Response 模型和 HTTP 无状态特征;认识 SPA + REST API 的现代 Web 应用形态
为什么 HTTP 之后先学数据库
知识点:理解后端系统的核心闭环:接收请求 → 处理业务 → 持久化数据 → 返回响应;理解数据库不是 Spring 的附属品,而是业务状态的主要持久化载体;明确本组只建立企业开发必需数据库基础,MySQL 深度原理另设专题
Web Server、Servlet Container 与 Tomcat
知识点:区分 Nginx、Tomcat 与 Java Web 应用的职责;理解 Connector、Servlet Container、Context Path;理解传统外置 Tomcat 与 Spring Boot 内嵌 Tomcat
Spring Framework 的定位与模块体系
知识点:理解 Core Container、AOP、Data Access、Web 的宏观结构;理解 Spring Framework、Spring MVC、Spring Boot 的关系
Spring MVC 架构与 Front Controller
知识点:理解 DispatcherServlet、HandlerMapping、HandlerAdapter、Controller;理解前后端分离下 ViewResolver 的位置
Spring Boot 的定位与 Spring Initializr
知识点:理解 Spring Boot 为什么能简化 Spring 项目;使用 Initializr 创建最小 Web 工程
MVC、三层架构与模块边界
知识点:区分 MVC 与 Controller-Service-Mapper 三层;理解表示层、业务层、持久层的依赖方向
JDBC:Java 到数据库的标准链路
知识点:理解 Driver、Connection、PreparedStatement、ResultSet;掌握 try-with-resources 和资源释放
Spring 事务抽象与 @Transactional
知识点:理解 PlatformTransactionManager;理解声明式事务依赖 AOP 代理;理解事务边界通常位于 Service
Authentication、Authorization 与 RBAC
知识点:区分认证与授权;理解 User、Role、Authority/Permission
Redis 定位、五大数据类型与 TTL
知识点:掌握 String、Hash、List、Set、ZSet;理解 key/value、TTL、典型缓存场景
JUnit 5 与测试分层
知识点:区分单元测试、集成测试、E2E;掌握断言、AAA、参数化测试基础
企业级后端完整技术地图
知识点:建立 Browser/Vue → HTTP → Tomcat → Spring MVC → Service → Persistence → Database 的主链;理解认证、事务、缓存、日志、测试、文件、定时任务等横切能力;认识单体、模块化单体和微服务的边界,本课程只做到可靠企业单体
pom.xml、Dependency 与 Repository
知识点:掌握 POM 基本结构、dependency 声明和本地/远程/中央仓库;理解传递依赖、依赖冲突与 exclusions;掌握 compile、runtime、test、provided 等常见 scope
IP、端口、域名、DNS、URL 与 URI
知识点:理解 IP 定位主机、Port 定位进程;理解 DNS 解析和域名;拆解 URL 的 scheme、host、port、path、query、fragment
关系型数据库、表、行、列与关系模型
知识点:理解 Database、Table、Row、Column、Primary Key、Foreign Key;理解一对一、一对多、多对多;理解业务实体如何映射为表结构
Servlet 接口与生命周期
知识点:理解 Servlet、GenericServlet、HttpServlet;掌握 init、service、doGet/doPost、destroy;理解 Servlet 单实例、多线程请求模型
IoC:对象创建权交给容器
知识点:理解传统 new 带来的耦合问题;理解 IoC、Bean 与控制反转;建立容器管理对象的心智模型
DispatcherServlet 请求执行主链
知识点:掌握查找 Handler、执行拦截器、调用 Controller、处理异常、写响应的主流程
Starter 与依赖管理
知识点:理解 starter 的场景化依赖集合;理解 starter-web 与 Spring MVC/Tomcat 的关系
Controller、Service、Mapper 的职责
知识点:Controller 做协议适配;Service 放业务规则与事务边界;Mapper/Repository 做数据访问
DataSource、HikariCP 与 SQL 注入
知识点:理解连接池为什么存在;理解 PreparedStatement 参数化 SQL;理解 #{} 与字符串拼接安全边界的基础
传播行为、隔离级别与回滚规则
知识点:掌握 REQUIRED、REQUIRES_NEW 等核心传播语义;理解 isolation 与数据库隔离级别;掌握 rollbackFor
SecurityFilterChain 请求链
知识点:理解 DelegatingFilterProxy、FilterChainProxy、SecurityFilterChain;理解安全链位于 DispatcherServlet 之前
RedisTemplate、序列化与 Cache Aside
知识点:掌握 RedisTemplate/StringRedisTemplate;理解序列化选择;实现缓存命中、未命中、回源与写缓存
Mockito 与 Service 单元测试
知识点:掌握 @Mock、@InjectMocks、when、verify;理解 Mock 的隔离价值和过度 Mock 风险
一次请求贯穿整个 Java 后端
知识点:从 HTTP Request 到 HTTP Response 追踪完整生命周期;定位 Filter、DispatcherServlet、Controller、Service、Mapper、Database 的职责;理解 DTO、Entity/PO、VO、Result 在请求与响应链中的数据流
Maven 生命周期、Phase、Goal 与 Plugin
知识点:理解 clean、default、site 生命周期;掌握 compile、test、package、verify、install、deploy 等阶段;理解 plugin / goal 与生命周期绑定关系
HTTP 请求与响应报文
知识点:掌握 Request Line / Status Line、Header、Body;能使用浏览器 DevTools 查看真实 HTTP 报文;理解 HTTP 与 HTTPS/TLS 的边界
DDL、DML、DQL 与 DCL
知识点:掌握 CREATE/ALTER/DROP 基础;掌握 INSERT/UPDATE/DELETE;掌握 SELECT 及基本 WHERE/ORDER BY/LIMIT;认识用户、权限与 GRANT/REVOKE 的基本作用
HttpServletRequest
知识点:读取 Method、URI、Header、Parameter、Body;理解 Request Attribute 与 Request Scope;认识输入流、客户端地址与 Session 信息
DI:依赖注入
知识点:掌握构造器、Setter、字段注入;理解按类型注入、@Qualifier、@Primary;理解为什么现代 Spring 更推荐构造器注入
HandlerMapping、HandlerAdapter 与 HandlerMethod
知识点:理解 RequestMappingHandlerMapping;理解 HandlerMethod 和 RequestMappingHandlerAdapter;认识适配器模式在 MVC 中的作用
@SpringBootApplication
知识点:拆解 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan;理解启动类包位置的影响
DTO、Entity/PO、VO 与对象映射
知识点:理解请求模型、持久化模型、响应模型的边界;认识 BeanUtils、MapStruct 等映射方式
MyBatis 定位与 Spring Boot 集成
知识点:理解 MyBatis 是 SQL Mapper 而不是全自动 ORM;理解 SqlSessionFactory、MapperScan、starter
事务失效场景
知识点:理解 self-invocation、异常被吞、非代理调用;理解异步线程与事务上下文不自动传播
Authentication、SecurityContext 与 Provider
知识点:理解 Authentication、SecurityContextHolder;认识 AuthenticationManager、AuthenticationProvider
缓存一致性、穿透、击穿与雪崩
知识点:理解更新数据库后删除缓存;理解空值缓存、互斥、TTL 打散等基础方案;高级 Redis 集群和分布式锁放到微服务课程
MockMvc 与 Spring Boot 集成测试
知识点:掌握 Web 层请求/JSON/状态断言;掌握 @SpringBootTest 和测试 Profile
Maven 标准目录与 IDEA 工程
知识点:理解 src/main/java、src/main/resources、src/test/java、target;理解 resources 如何进入 classpath;掌握 IDEA 中 Maven 刷新、依赖查看和常见构建故障定位
HTTP Method、幂等性与资源语义
知识点:掌握 GET、POST、PUT、PATCH、DELETE 常见语义;理解 safe 与 idempotent;能根据业务设计合理的 Method,而不是机械 CRUD
约束、数据类型与表设计
知识点:理解 PRIMARY KEY、UNIQUE、NOT NULL、DEFAULT、CHECK、FOREIGN KEY;掌握常见数值、字符串、日期时间、JSON 类型选择;理解数据库约束作为数据正确性的最后防线
HttpServletResponse
知识点:设置 Status、Header、Content-Type;输出文本、JSON、字节数据;理解响应提交与字符编码
Bean 注册与组件扫描
知识点:掌握 @Component、@Service、@Repository、@Controller;理解 @ComponentScan、Bean Name 与扫描范围
Controller 与请求映射注解
知识点:掌握 @Controller、@RestController、@RequestMapping;掌握 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping
自动配置原理
知识点:理解 @Conditional 条件装配;理解 AutoConfiguration 如何根据 classpath、Bean、配置属性生效
统一 Result、错误码与分页模型
知识点:设计 code/msg/data;设计分页参数与 total/records;统一 HTTP 状态和业务错误表达
Mapper 动态代理与 SqlSession
知识点:理解为什么 Mapper 只有接口也能运行;理解 Mapper Proxy → SqlSession → Executor → JDBC 主链
悲观锁、乐观锁与数据库约束
知识点:理解 SELECT ... FOR UPDATE、版本号乐观锁;理解 UNIQUE/CHECK 等数据库不变量
UserDetailsService、BCrypt 与密码安全
知识点:掌握 UserDetailsService、PasswordEncoder、BCrypt;理解明文密码与可逆加密不适合密码存储
文件上传下载与对象存储
知识点:掌握 MultipartFile、Content-Disposition;理解 OSS/MinIO Bucket/Object、私有文件访问;认识 MIME/魔数/内容检测
数据库、中间件集成测试与 JaCoCo
知识点:理解真实 MySQL 集成测试的必要性;认识 Testcontainers;掌握 JaCoCo line/branch coverage 与 mvn verify
Parent、dependencyManagement 与 BOM 入门
知识点:理解 parent 继承与 dependencyManagement 的版本管理作用;理解 BOM import;为后续 Spring Boot parent、starter 与多模块工程打基础
HTTP 状态码与业务错误码
知识点:掌握 2xx、3xx、4xx、5xx 分类及常见状态码;区分 HTTP 状态码和业务 code;理解 401、403、404、409、500 的典型业务语义
JOIN、子查询、聚合与分页
知识点:掌握 INNER JOIN、LEFT JOIN;理解标量/列/表子查询;掌握 GROUP BY、HAVING、聚合函数与 LIMIT 分页
Servlet Mapping、转发与重定向
知识点:理解 URL Pattern;掌握 RequestDispatcher.forward 与 sendRedirect;比较服务端转发和客户端重新请求
BeanFactory、ApplicationContext 与容器
知识点:理解 BeanFactory 与 ApplicationContext 的层次关系;理解 getBean、资源、事件等容器能力;知道业务代码为什么不应该到处手工查容器
Query、Path、Form 参数绑定
知识点:掌握 @RequestParam、@PathVariable;理解 DTO/JavaBean 参数绑定与集合参数
application.yml、properties 与 Profile
知识点:掌握 YAML/Properties;掌握 dev/test/prod 环境拆分和 profile 激活
RESTful API、过滤排序与版本兼容
知识点:设计资源路径、Method、分页、过滤、排序;认识 API Versioning 和向后兼容
MyBatis 注解、XML 与参数绑定
知识点:掌握 @Select/@Insert/@Update/@Delete;掌握 #{}/@Param;掌握 XML namespace、resultType、resultMap
API 幂等与重复请求
知识点:理解 Idempotency-Key、唯一键和业务状态判断;能设计重复下单/重复支付防护
JWT Access Token
知识点:理解 Header、Payload、Signature;完成签发、校验、过期与 Bearer Token 请求链
Java HTTP Client、RestClient 与第三方 API
知识点:掌握后端主动调用 HTTP 服务的统一模式;理解 timeout、header、JSON body、错误处理
日志、TraceId 与 Actuator
知识点:掌握 SLF4J/Logback 日志等级;理解 MDC/TraceId;掌握 Actuator health/metrics 基础
Header、Content-Type、Cookie 与 Authorization
知识点:掌握 application/json、form、multipart/form-data;理解 Accept、Content-Type、Cookie、Authorization;理解 UTF-8 与常见乱码问题
索引、EXPLAIN 与 SQL 性能基础
知识点:理解索引解决什么问题和索引并非越多越好;认识 B+Tree 索引、联合索引、最左匹配的基本思想;会使用 EXPLAIN 做最基础执行计划观察
Cookie 与 Session
知识点:理解 HTTP 无状态为什么需要会话;理解 Cookie、Session、SessionId 的协作;认识登录态、过期、退出与 Session 安全
Bean Scope 与生命周期
知识点:掌握 singleton、prototype 及 Web Scope 基础;理解实例化 → 注入 → 初始化 → 销毁;认识 @PostConstruct、@PreDestroy
@RequestBody、HttpMessageConverter 与 Jackson
知识点:理解 JSON Body 如何变为 DTO;理解 HttpMessageConverter 的职责;理解 Jackson 反序列化和响应序列化
外部化配置与 @ConfigurationProperties
知识点:理解配置优先级、环境变量与命令行覆盖;掌握类型安全配置对象;理解 Secret 不入仓库
CRUD、状态机与业务校验
知识点:从单表 CRUD 走向多表业务;理解状态启停、非法状态转换和状态机思想
MyBatis 动态 SQL 与复杂结果映射
知识点:掌握 if、where、set、foreach;认识 association、collection 与 N+1 问题
本地事务到最终一致性的边界
知识点:理解强一致与最终一致;认识 Outbox/Inbox/领域事件作为后续微服务课程的桥梁
Refresh Token、轮换与撤销
知识点:理解短期 Access + 长期 Refresh;理解 HttpOnly/Secure/SameSite;认识 rotation、reuse detection 与 revoke
Spring Task 与 @Async
知识点:掌握 @Scheduled、Cron;理解 @Async、线程池和异步边界;认识多实例定时任务问题作为微服务课程桥梁
Maven 多模块、插件与 Git 协作
知识点:理解 parent/modules、dependencyManagement、pluginManagement;认识 Surefire/Failsafe;掌握 Git/PR/Code Review 与构建流程接口
Query、Path、Form、JSON 与 REST 接口契约
知识点:理解 Query Parameter、Path Variable、Form、JSON Body、Multipart File;理解 JSON 序列化 / 反序列化;建立 Path + Method + Parameters + Response 的 API 契约意识
事务、隔离与锁的数据库视角
知识点:理解 ACID、提交与回滚;认识隔离级别、并发异常、行锁;为后续 Spring @Transactional 与并发业务打基础
Filter、Listener 与传统 JSP/JSTL 的历史定位
知识点:理解 FilterChain 和认证/编码/日志等典型场景;认识 Listener 的生命周期监听作用;理解 JSP/JSTL/EL 与服务器端渲染 MVC,只做历史和原理补全
BeanPostProcessor、FactoryBean 与扩展点
知识点:理解 BeanPostProcessor 在生命周期中的增强位置;区分 FactoryBean 与普通 Factory/Bean;认识 Spring 框架扩展机制的基本思想
Validation、类型转换与格式化
知识点:掌握 @Valid、@Validated 和 Jakarta Validation 常用约束;认识 Converter、Formatter、@DateTimeFormat
内嵌 Tomcat、启动流程与 Actuator 入门
知识点:理解 SpringApplication.run、ApplicationContext refresh 与 WebServer 启动;理解 JAR 部署和 Actuator health 基础
OpenAPI、Swagger/Knife4j 与 Apifox/Postman
知识点:理解接口设计阶段与开发测试阶段的工具分工;掌握 OpenAPI 文档、接口调试和联调基本流程
MyBatis 缓存、执行器与插件机制
知识点:理解一级/二级缓存边界;认识 Executor、StatementHandler、ParameterHandler、ResultSetHandler;理解插件拦截的基本机制
URL、方法级权限与资源归属
知识点:掌握 requestMatchers、@PreAuthorize;理解仅有角色校验不足以阻止 IDOR / 越权
WebSocket、SSE 与实时推送
知识点:理解请求响应与服务器主动推送;掌握 WebSocket/SSE 典型通知场景
GitHub Actions 与 CI
知识点:理解 checkout、setup-java、Maven cache、mvn verify;理解在 CI 中启动 MySQL/Redis 等依赖和构建门禁
循环依赖与三级缓存
知识点:理解什么是循环依赖及哪些循环依赖能/不能解决;认识 singletonObjects、earlySingletonObjects、singletonFactories;理解三级缓存与代理对象提前暴露的关系
统一响应、ResponseEntity 与分页响应
知识点:设计 Result<T>、PageResult;理解 ResponseEntity 如何控制 status/header/body
MyBatis-Plus:BaseMapper、Wrapper 与分页
知识点:掌握 BaseMapper、LambdaQueryWrapper、Page/IPage;理解 MyBatis-Plus 不能替代 SQL 基础
CSRF、CORS、OAuth2/OIDC 入门
知识点:理解 CSRF 发生条件和 CORS 的真正作用;认识 OAuth2/OIDC、Resource Server 的应用边界
Apache POI、邮件短信与效率工具
知识点:认识 Excel 导入导出对象模型;理解邮件、短信、支付等第三方集成模式;合理使用 Lombok、MapStruct 等工具而不掩盖基础原理
JAR、Linux、systemd 与 Nginx 部署
知识点:掌握 mvn package、java -jar、Profile/环境变量;理解 systemd 管理 Java 服务;理解 Nginx 静态资源、反向代理、HTTPS 的生产访问链
AOP、动态代理与自定义注解
知识点:理解 Aspect、Pointcut、Advice、JoinPoint;区分 JDK Dynamic Proxy 与 CGLIB;使用 @Aspect、@Around、自定义注解完成日志/审计/公共字段等横切逻辑
全局异常、Interceptor 与 CORS
知识点:掌握 @RestControllerAdvice、@ExceptionHandler;理解 HandlerInterceptor 与 Filter 的边界;理解 CORS 与预检请求
MyBatis-Plus:逻辑删除、自动填充与乐观锁
知识点:掌握 @TableLogic、MetaObjectHandler、@Version;理解插件体系和适用边界
Flyway 与 JPA/Hibernate 补充路线
知识点:掌握 Flyway 版本化 migration、validate、baseline 的基本思想;理解 ORM、JPA、Hibernate、Spring Data JPA 的关系;能解释 MyBatis 与 JPA 的选型差异