尚硅谷Java培训

基于AI的SSM

视频介绍

后端工程化体系是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 - 简介
  • 135.MyBatis - HelloWorld
  • 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及总结