小马哥讲Spring核心编程思想

在线播放

课程目录

01丨课程介绍

02丨内容综述

03丨课前准备:学习三件套(工具、代码与大脑)

04丨特性总览:核心特性、数据存储、Web技术、框架整合与测试

05丨Spring版本特性:Spring各个版本引入了哪些新特性?

06丨Spring模块化设计:Spring功能特性如何在不同模块中组织?

07丨Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?

08丨JDK API实践:Spring怎样取舍Java I O、集合、反射、动态代理等API的使用

09丨Java EE API整合:为什么Spring要与“笨重”的Java EE共舞?

10丨Spring编程模型:Spring实现了哪些编程模型?

11丨Spring核心价值:我们能从Spring Framework中学到经验和教训呢?

12丨面试题精选

13丨IoC发展简介:你可能对IoC有些误会?

14丨IoC主要实现策略:面试官总问IoC和DI的区别,他真的理解吗?

15丨IoC容器的职责:IoC除了依赖注入,还涵盖哪些职责呢?

16丨IoC容器的实现:IoC容器是开源框架的专利吗?

17丨传统IoC容器实现:JavaBeans也是IoC容器吗?

18丨轻量级IoC容器:如何界定IoC容器的“轻重”?

19丨依赖查找 VS

20丨构造器注入 VS

21丨面试题精选

22丨Spring IoC依赖查找:依赖注入还不够吗?依赖查找存在的价值几何?

23丨Spring IoC依赖注入:Spring提供了哪些依赖注入模式和类型呢?

24丨Spring IoC依赖来源:依赖注入和查找的对象来自于哪里?

25丨Spring IoC配置元信息:Spring IoC有哪些配置元信息?它们的进化过程是怎样的?

26丨Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器?

27丨Spring应用上下文:ApplicationContext除了IoC容器角色,还提供哪些特性?

28丨使用Spring IoC容器:选BeanFactory还是ApplicationContext?

29丨Spring IoC容器生命周期:IoC容器启停过程中发生了什么?

30丨面试题精选

31丨定义Bean:什么是BeanDefinition?

32丨BeanDefinition元信息:除了Bean名称和类名,还有哪些Bean元信息值得关注?

33丨命名Spring Bean:id和name属性命名Bean,哪个更好?

34丨Spring Bean的别名:为什么命名Bean还需要别名?

35丨注册Spring Bean:如何将BeanDefinition注册到IoC容器?

36丨实例化Spring Bean:Bean实例化的姿势有多少种?

37丨初始化Spring Bean:Bean初始化有哪些方式?

38丨延迟初始化Spring Bean:延迟初始化的Bean会影响依赖注入吗?

39丨销毁Spring Bean: 销毁Bean的基本操作有哪些?

40丨回收Spring Bean:Spring IoC容器管理的Bean能够被垃圾回收吗?

41丨面试题精选

42丨依赖查找的今世前生:Spring IoC容器从Java标准中学到了什么?

43丨单一类型依赖查找:如何查找已知名称或类型的Bean对象?

44丨集合类型依赖查找:如何查找已知类型多个Bean集合?

45丨层次性依赖查找:依赖查找也有双亲委派?

46丨延迟依赖查找:非延迟初始化Bean也能实现延迟查找?

47丨安全依赖查找

48丨内建可查找的依赖:哪些Spring IoC容器内建依赖可供查找?

49丨依赖查找中的经典异常:Bean找不到?Bean不是唯一的?Bean创建失败?

50丨面试题精选

51丨依赖注入的模式和类型:Spring提供了哪些依赖注入的模式和类型?

52丨自动绑定(Autowiring):为什么Spring会引入Autowiring?

53丨自动绑定(Autowiring)模式:各种自动绑定模式的使用场景是什么?

54丨自动绑定(Autowiring)限制和不足:如何理解和挖掘官方文档中深层次的含义?

55丨Setter方法依赖注入:Setter注入的原理是什么?

56丨构造器依赖注入:官方为什么推荐使用构造器注入?

57丨字段注入:为什么Spring官方文档没有单独列举这种注入方式?

58丨方法注入:方法注入是@Autowired专利吗?

59丨接口回调注入:回调注入的使用场景和限制有哪些?

60丨依赖注入类型选择:各种依赖注入有什么样的使用场景?

61丨基础类型注入:String和Java原生类型也能注入Bean的属性,它们算依赖注入吗?

62丨集合类型注入:注入Collection和Map类型的依赖区别?还支持哪些集合类型?

63丨限定注入:如何限定Bean名称注入?如何实现Bean逻辑分组注入?

64丨延迟依赖注入:如何实现延迟执行依赖注入?与延迟依赖查找是类似的吗?

65丨依赖处理过程:依赖处理时会发生什么?其中与依赖查找的差异在哪?

66丨@Autowired注入:@Autowired注入的规则和原理有哪些?

67丨JSR 330 @Inject注入:@Inject与@Autowired的注入原理有怎样的联系?

68丨Java通用注解注入原理:Spring是如何实现@Resource和@EJB等注解注入的?

69丨自定义依赖注入注解:如何最简化实现自定义依赖注入注解?

70丨面试题精选

71丨依赖查找的来源:除容器内建和自定义Spring Bean之外,还有其他来源提供依赖查找吗?

72丨依赖注入的来源:难道依赖注入的来源与依赖查找的不同吗?

73丨Spring容器管理和游离对象:为什么会有管理对象和游离对象?

74丨Spring Bean Definition作为依赖来源:Spring Bean的来源

75丨单例对象作为依赖来源:单体对象与普通Spring Bean存在哪些差异?

76丨非Spring容器管理对象作为依赖来源:如何理解ResolvableDependency?

77丨外部化配置作为依赖来源:@Value是如何将外部化配置注入Spring Bean的?

78丨面试题精选

79丨Spring Bean作用域:为什么Spring Bean需要多种作用域?

80丨singleton Bean作用域:单例Bean在当前Spring应用真是唯一的吗?

81丨prototype Bean作用域:原型Bean在哪些场景下会创建新的实例?

82丨request Bean作用域:request Bean会在每次HTTP请求创建新的实例吗?

83丨sessionBean作用域:sessionBean在SpringMVC场景下存在哪些局限性?

84丨applicationBean作用域:applicationBean是否真的有必要?

85丨自定义Bean作用域:设计Bean作用域应该注意哪些原则?

86丨课外资料:SpringCloudRefreshScope是如何控制Bean的动态刷新?

87丨面试题精选

88丨SpringBean元信息配置阶段:BeanDefinition配置与扩展

89丨SpringBean元信息解析阶段:BeanDefinition的解析

90丨SpringBean注册阶段:BeanDefinition与单体Bean注册

91丨SpringBeanDefinition合并阶段:BeanDefinition合并过程是怎样出现的?

92丨SpringBeanClass加载阶段:BeanClassLoader能够被替换吗

93丨SpringBean实例化前阶段:Bean的实例化能否被绕开?

94丨SpringBean实例化阶段:Bean实例是通过Java反射创建吗?

95丨SpringBean实例化后阶段:Bean实例化后是否一定被是使用吗?

96丨SpringBean属性赋值前阶段:配置后的PropertyValues还有机会修改吗?

97丨Aware接口回调阶段:众多Aware接口回调的顺序是安排的?

98丨SpringBean初始化前阶段:BeanPostProcessor

99丨SpringBean初始化阶段:@PostConstruct、InitializingBean以及自定义方法

100丨SpringBean初始化后阶段:BeanPostProcessor

101丨SpringBean初始化完成阶段:SmartInitializingSingleton

102丨SpringBean销毁前阶段:DestructionAwareBeanPostProcessor用在怎样的场景

103丨SpringBean销毁阶段:@PreDestroy、DisposableBean以及自定义方法

104丨SpringBean垃圾收集(GC):何时需要GCSpringBean?

105丨面试题精选

106丨Spring配置元信息:Spring存在哪些配置元信息?它们分别用在什么场景?

107丨Spring Bean配置元信息:BeanDefinition

108丨Spring Bean属性元信息:PropertyValues

109丨Spring容器配置元信息

110丨基于XML资源装载Spring Bean配置元信息

111丨基于Properties资源装载Spring Bean配置元信息:为什么Spring官方不推荐?

112丨基于Java注解装载Spring Bean配置元信息

113丨Spring Bean配置元信息底层实现之XML资源

114丨Spring Bean配置元信息底层实现之Properties资源

115丨Spring Bean配置元信息底层实现之Java注解

116丨基于XML资源装载Spring IoC容器配置元信息

117丨基于Java注解装载Spring IoC容器配置元信息

118丨基于Extensible XML authoring 扩展Spring XML元素

119丨Extensible XML authoring扩展原理

120丨基于Properties资源装载外部化配置

121丨基于YAML资源装载外部化配置

122丨面试题

123丨引入动机:为什么Spring不使用Java标准资源管理,而选择重新发明轮子?

124丨Java标准资源管理:JavaURL资源管理存在哪些潜规则?

125丨Spring资源接口:Resource接口有哪些语义?它是否“借鉴”了SUN的实现呢?

126丨Spring内建Resource实现:Spring框架提供了多少种内建的Resource实现呢?

127丨SpringResource接口扩展:Resource能否支持写入以及字符集编码?

128丨Spring资源加载器:为什么说Spring应用上下文也是一种Spring资源加载器?

129丨Spring通配路径资源加载器:如何理解路径通配Ant模式?

130丨Spring通配路径模式扩展:如何扩展路径匹配的规则?

131丨依赖注入Spring Resource:如何在XML和Java注解场景注入Resource对象?

132丨依赖注入ResourceLoader:除了ResourceLoaderAware回调注入,还有哪些注入方法?

133丨面试题精选

134丨Spring国际化使用场景

135丨Spring国际化接口:MessageSource不是技术的创造者,只是技术的搬运工?

136丨层次性MessageSource:双亲委派不是ClassLoader的专利吗?

137丨Java国际化标准实现:ResourceBundle潜规则多?

138丨Java文本格式化:MessageFormat脱离Spring场景,能力更强大?

139丨MessageSource开箱即用实现:ResourceBundle +MessageFormat组合拳?

140丨MessageSource内建依赖:到底“我”是谁?

141丨课外资料:SpringBoot为什么要新建MessageSource Bean?

142丨面试题精选

143丨Spring校验使用场景:为什么Validator并不只是Bean的校验?

144丨Validator接口设计:画虎不成反类犬?

145丨Errors接口设计:复杂得没有办法理解?

146丨Errors文案来源:Spring国际化充当临时工?

147丨自定义Validator:为什么说Validator容易实现,却难以维护?

148丨Validator的救赎:如果没有BeanValidation,Validator将会在哪里吗?

149丨面试题精选

150丨Spring数据绑定使用场景:为什么官方文档描述一笔带过?

151丨Spring数据绑定组件:DataBinder

152丨DataBinder绑定元数据:PropertyValues不是SpringBean属性元信息吗?

153丨DataBinder绑定控制参数:ignoreUnknownFields和ignoreInvalidFields有什么作用?

154丨Spring底层JavaBeans替换实现:BeanWrapper源于JavaBeans而高于JavaBeans?

155丨BeanWrapper的使用场景:Spring数据绑定只是副业?

156丨课外资料:标准JavaBeans是如何操作属性的

157丨DataBinder数据校验:又见Validato

158丨面试题精选

159丨Spring类型转换的实现:Spring提供了哪几种类型转换的实现?

160丨使用场景:Spring类型转换各自的使用场景以及发展脉络是怎样的?

161丨基于JavaBeans接口的类型转换:Spring是如何扩展PropertyEditor接口实现类型转换的?

162丨Spring内建PropertyEditor扩展:哪些常见类型被Spring内建PropertyEditor实现?

163丨自定义PropertyEditor扩展:不尝试怎么知道它好不好用?

164丨SpringPropertyEditor的设计缺陷:为什么基于PropertyEditor扩展并不适合作为类型转换?

165丨Spring3通用类型转换接口:为什么Converter接口设计比PropertyEditor更合理?

166丨Spring内建类型转换器:Spring的内建类型转换器到底有多丰富?

167丨Converter接口的局限性:哪种类型转换场景Converter无法满足?有什么应对之策?

168丨GenericConverter接口:为什么GenericConverter比Converter更通用?

169丨优化GenericConverter接口:为什么GenericConverter需要补充条件判断?

170丨扩展Spring类型转换器:为什么最终注册的都是ConditionalGenericConverter?

最后更新于