-------------------------------------------
教程简介:
后端工程化体系是Java程序员要走的路,也是企业应用开发的刚需技术。本套教程基于AI时代大背景和尚硅谷Java全端工程师课程,内容重新设计,知识层次分明,重点难点突出,既保证了讲解的深度和广度,又保证了学习者的吸收效果,更加可以提升实战技能!
本套教程为课堂实录,内容包含:Spring、SpringMVC、MyBatis、SpringBoot等。Spring篇,重点讲解了 IOC、AOP、声明式事务的用法和原理,以及Spring底层源码和常见面试问题;SpringMVC篇,重点讲解了请求处理、响应处理、RESTful CRUD、拦截器、异常处理、数据校验、VO分层、接口文档,并以debug源码方式,详细描述了SpringMVC-DispatcherServlet核心流程;MyBatis篇,重点讲解了基本用法、参数处理、自定义结果集、关联查询、分步查询、动态SQL、缓存机制、分页插件、逆向工程,涵盖MyBatis全部核心功能;SpringBoot篇,重点讲解了自动配置原理、日志使用、环境隔离、外部化配置、自定义starter等。
通过本套教程的学习,你将对后端工程化核心框架有一个系统的掌握,无论从开发实战到底层原理都可以融会贯通,打牢基础,让后续的学习更加轻松容易!
-------------------------------------------
教程目录:
001.AI版SSM教程简介
002.预备 - AI工具链
003.Spring - 介绍
004.Spring - 容器和组件
005.Spring - IoC和DI
006.容器 - 注册 - 实验1:@Bean - 把组件放到容器
007.容器 - 注册 - 补充 - Maven配置问题
008.容器 - 注册 - 补充 - Maven 聚合配置
009.容器 - 注册 - 实验2:从容器中获取组件 - 按照名字.类型
010.容器 - 注册 - 实验2:组件创建时机和单例特性
011.容器 - 注册 - 实验3:@Configuration - 配置类
012.容器 - 注册 - 实验4-7:@Controller.@Service.@Repository.@Component - MVC分层注解
013.容器 - 注册 - 实验8:@ComponentScan - 批量扫描
014.容器 - 注册 - 实验9:@Import - 导入第三方组件
015.容器 - 注册 - 补充 - 分层注解底层都是 @Component
016.容器 - 注册 - 实验10:@Scope - 调整组件作用域
017.容器 - 注册 - 实验11:@Lazy - 单例情况下的懒加载
018.容器 - 注册 - 实验12:FactoryBean - 利用工厂制造复杂Bean
019.容器 - 注册 - 实验13:@Conditional - 条件注册
020.容器 - 注册 - 实验13:@Conditional 派生注解
021.容器 - 注册 - 实验13:@ConditionalOnMissingBean 的判定bug
022.容器 - 注入 - 实验1:@Autowired
023.容器 - 注入 - 实验2-3:@Qualifier 和 @Primary
024.容器 - 注入 - 实验4:@Resource 也是自动注入
025.容器 - 注入 - 实验6:构造器注入
026.容器 - 注入 - 实验5:Setter方法注入
027.容器 - 注入 - 实验7:xxxAware 感知接口
028.容器 - 注入 - 实验8:@Value 给属性赋值
029.容器 - 注入 - 实验9:@PropertySource
030.容器 - 注入 - 实验9:细节,类路径找资源的写法
031.容器 - 注入 - ResourceUtils - 获取资源
032.容器 - 注入 - @Profile - 多环境
033.源码 - 原生方式使用容器 - ClassPathXmlApplicationContext
034.容器 - 生命周期 - 实验1 - @Bean 指定生命周期初始化和销毁方法
035.容器 -生命周期 - 实验2-3 - InitializingBean.DisposableBean
036.容器 - 生命周期 - 实验4-5:@PreDestroy.@PostConstruct
037.容器 - 生命周期 - 实验6:BeanPostProcessor
038.容器 - 生命周期 - BeanPostProcessor能做什么
039.容器篇 - 结束
040.单元测试新用法
041.AOP - 日志 - 硬编码与静态代理
042.AOP - 日志 - 动态代理
043.AOP - 日志 - 动态代理 - 加日志
044.AOP - 日志 - 动态代理必须有接口
045.AOP - 日志 - 日志工具类
046.AOP - 专业术语
047.AOP - 切面 - 编写切面和通知方法实现 AOP
048.AOP - 细节 - 切入点 表达式通配符
049.AOP - 细节 - 切入点表达式的其他写法
050.AOP - 细节 - 组件在容器中其实是代理对象
051.AOP - 细节 - 通知方法执行流程
052.AOP - 细节 - JoinPoint 连接点信息
053.AOP - 细节 - @Pointcut 抽取切入点表达式
054.AOP - 细节 - 多切面执行顺序
055.作业 - 处理
056.【源码】 - BeanFactory 里面的核心集合
057.【源码】- Spring 容器 底层就是三个Map,三级缓存机制
058.AOP - 环绕通知 - 拦截器目标方法执行,执行前后进行修改
059.AOP - 环绕通知 - 建议一定抛出异常,方便多切面情况下异常感知链路是通的
060.AOP - 总结:应用场景
061.事务 - 环境搭建 - 创建数据库.创建项目
062.事务 - 环境搭建 - 整合数据源和JdbcTemplate
063.事务 - 实验1:按照id查询图书(JdbcTemplate)
064.事务 - 实验2:添加图书
065.事务 - 实验3:按照id修改图书库存
066.事务 - 实验4:按照id删除图书
067.事务 - 实验5:按照username扣减账户余额
068.事务 - 实验6:结账操作
069.事务 - @Transactional - 声明式事务搞定
070.事务 - 细节 - 事务管理器的原理
071.事务 - 细节 - timeout - 超时控制
072.事务 - 细节 - readOnly - 只读优化
073.事务 -细节 - rollbackFor - 指定哪些异常需要回滚
074.事务 - 细节 - noRollbackFor - 指定哪些异常不需要回滚
075.事务 - 细节 - 隔离级别 - READ_UNCOMMITTED 读未提交
076.事务 - 细节 - 隔离级别 - READ_COMMITTED - 读已提交
077.事务 - 细节 - 隔离级别 - REPEATABLE_READ - 可重复读
078.事务 - 细节 - 传播行为 - propagation
079.事务 - 细节 - 传播行为 - 分析一个复杂案例
080.事务 - 细节 - 传播行为 - 属性传播
081.Spring - 总结
082.【源码】- 双检查锁机制
083.【源码】- IoC容器启动12大步
084.SpringMVC - Web开发实际就是请求响应
085.SpringMVC -Helloworld
086.SpringMVC - 小问题
087.@RequestMapping - 路径映射 - 通配符
088.@RequestMapping - 请求限定
089.请求限定小结
090.HTTP - 复习
091.请求处理 - 实验1:使用普通变量,收集请求参数
092.请求处理 - 实验2:@RequestParam - 明确指定获取哪个参数值
093.请求处理 - 实验3:使用POJO匹配封装所有参数
094.请求处理 - 实验4:@RequestHeader - 获取请求头
095.请求处理 - 实验5:@CookieValue - 获取cookie的值
096.请求处理 - 实验6:pojo级联封装复杂属性
097.请求处理 - 实验7:@RequestBody 接受json字符串并进行自动转换为对象
098.请求处理 - 实验8:文件上传
099.请求处理 - 实验9:HttpEntity - 获取整个请求(包括体和头)
100.请求处理 -实验10:传入原生API
101.请求处理 - 总结
102.响应处理 - 实验1:返回json
103.响应处理 - 实验2:文件下载
104.响应处理 - Thymeleaf - 页面跳转
105.响应处理 - Thymeleaf - 测试页面取值
106.响应处理 - 总结
107.RESTful - API 接口设计的架构风格
108.RESTful - CRUD案例 - Dao层完成
109.RESTful - CRUD案例 - Service层完成
110.RESTful - CRUD案例 - Controller 层完成
111.RESTful - CRUD案例 - 统一返回R对象
112.RESTful - CRUD案例 - 查询所有
113.RESTful - CRUD案例 - 跨域
114.@PathVariable - 其他写法
115.复制一个练习项目
116.拦截器 - HandlerInterceptor - 拦截目标方法的执行
117.拦截器 - 多拦截器执行顺序
118.拦截器 - 执行顺序
119.拦截器 - 拦截器和过滤器的区别
120.异常处理 - @ExceptionHandler - 指定异常处理方法
121.异常处理 - @ControllerAdvice - 全局异常处理
122.异常处理 - 异常处理的最终方式
123.数据校验 - JSR303校验注解、@Valid、BindingResult
124.数据校验 - 全局异常处理
125.数据校验 - 自定义校验器
126.数据校验 - 错误消息提示
127.各种O的分层模型
128.最佳实践 - 项目中的vo用法
129.最佳实践 - 接口文档
130.SpringMVC - 结束
131.【源码】- DispatcherServlet 九大组件
132.【源码】- SpringMVC - DispatcherServlet 请求处理流程
133.【源码】- SpringMVC - 源码流程
134.MyBatis - HelloWorld
135.MyBatis - 简介
136.MyBatis - HelloWorld - 细节
137.MyBatis - CRUD - 完成 - 开sql日志
138.MyBatis - CRUD - 细节 - useGeneratedKeys 获取自增id
139.MyBatis - CRUD - 查询所有 & 开启驼峰命名
140.MyBatis - 参数处理 - #{}和${}
141.MyBatis - 参数处理 - 单个参数 #{} 直接取值
142.MyBatis - 参数处理 - 多个参数 @Param 注解标注每个参数的名字
143.MyBatis - 返回值 - 普通、对象、List、Map
144.MyBatis - 返回值 - ResultMap - 自定义结果集
145.MyBatis - 关联查询 - 关联关系复习与环境搭建
146.MyBatis - 关联查询 - ResultMap - association 指定一对一关联封装规则
147.MyBatis - 关联查询 - ResultMap - collection 指定一对多关联封装规则
148.MyBatis - 分步查询 - 原生分步写法
149.MyBatis - 自动分步查询 - collection - select 属性指定需要启动的下一次查询
150.MyBatis - 自动分步查询 - association - select 指定启动下一次查询
151.MyBatis - 超级分步的大坑
152.MyBatis - 分步查询 - 开启延迟加载
153.MyBatis - 自定义结果集小结 - 1-1、1-N、N-N
154.MyBatis - 动态SQL - if 标签
155.MyBatis - 动态SQL - where标签
156.MyBatis - 动态SQL - set标签
157.MyBatis - 动态SQL - trim标签实现where
158.MyBatis - 动态SQL - trim标签实现set
159.MyBatis - 动态SQL - choose、when、otherwise分支选择
160.动态sql-foreach批量操作
161.MyBatis - 动态SQL - 批量sql数据库默认支持回滚
162.MyBatis - 动态SQL - sql - 抽取可复用的片段
163.MyBatis - XML中的转义字符
164.MyBatis - 缓存机制 - 体验一级缓存
165.MyBatis - 缓存机制 - 体验二级缓存
166.MyBatis - 插件机制 - 知道有四大对象
167.MyBatis - 分页插件 - 基础用法
168.MyBatis - 分页插件 - 分页前后配合
169.MyBatis - 逆向生成
170.MyBatis - 最后的作用
171.异常处理打印错误堆栈
172.SpringBoot - 特性
173.SpringBoot - 简化打包、部署、运维
174.SpringBoot - 场景启动器
175.SpringBoot - 依赖管理
176.SpringBoot - 自动配置 - 基本理解
177.SpringBoot - 自动配置 - 导入场景会导入一堆自动配置类,这些配置类导入基于条件注解一堆组件
178.SpringBoot - 自动配置 - 自动配置类给容器中放组件、组件属性来自于属性类、属性类绑定配置文件
179.SpringBoot - 自动配置 - 总结
180.SpringBoot - 基础使用 - @ConfigurationProperties
181.SpringBoot - 基础使用 - yaml语法
182.SpringBoot - 基础使用 - banner设置
183.SpringBoot - 基础使用 - 启动Spring应用的其他方式
184.SpringBoot - 日志 - 简介
185.SpringBoot - 日志 - 日志记录
186.SpringBoot -日志 - 根据级别记录日志
187.SpringBoot - 日志 - 日志分组
188.SpringBoot - 日志 - 输出到文件
189.SpringBoot - 日志 - 归档与切割
190.SpringBoot - 日志 - 引入框架自己的日志配置文件
191.SpringBoot - 日志 - 切换日志实现
192.SpringBoot - 日志 - 总结
193.SpringBoot - 进阶 - profiles 环境隔离
194.SpringBoot - 进阶 - 外部化配置
195.SpringBoot - 单元测试 - 断言机制
196.SpringBoot - 可观测性 - actuator
197.SpringBoot - 生命周期 - 监听器感知生命周期
198.SpringBoot - 生命周期 - 事件驱动、异步
199.SpringBoot - 原理总结
200.自定义starter及总结