小马哥讲Spring核心编程思想
文章平均质量分 78
king_zfb
这个作者很懒,什么都没留下…
展开
-
第一章:Spring AOP 总览
AOP 常见使用场景 日志场景 • 诊断上下文,如:log4j 或 logback 中的 _x0008_MDC • 辅助信息,如:方法执行时间 统计场景 • 方法调用次数 • 执行异常次数 • 数据抽样 • 数值累加 安防场景 • 熔断,如:Netflix Hystrix • 限流和降级:如:Alibaba Sentinel • 认证和授权,如:Spring Security • 监控,如:JMX 性能场景 • 缓存,如 Spring Cache • 超时控制 Java AOP 设计模式 *代理模式:静态和原创 2021-01-03 22:57:16 · 423 阅读 · 0 评论 -
第二十章:Spring应用上下文生命周期
Spring应用上下文启动准备阶段 AbstractApplicationContext#prepareRefresh()方法 – 启动时间-startup Date – 状态标识-closed(false)、active(true) – 初始化 Propertysources - initPropertySources() – 检验Environment中必须属性 – 初始化事件监听器集合 – 初始化早期Spring事件集合 BeanFactory创建阶段 AbstractApplicationCo原创 2020-12-27 19:16:57 · 243 阅读 · 0 评论 -
第十九章:Spring Environment抽象
理解 Spring Environment 抽象 统一的Spring配置属性管理 Spring Framework 3.1开始引入Environment抽象,它统一Spring配置属性的存储/包括占位符处理和类型转 换,不仅完整地替换PropertyPlaceholderConfigurer,而且还支持更丰富的配置属性源(Propertysource) 条件化Spring Bean装配管理 通过Environment Profiles信息/帮助Spring容器提供条件化地装配Bean Spring En原创 2020-12-20 23:33:10 · 150 阅读 · 0 评论 -
第十八章: Spring注解
Spring注解驱动编程发展历程 注解驱动启蒙时代:Spring Framework 1.x 注解驱动过渡时代:Spring Framework2.x 注解驱动黄金时代:Spring Framework3.x 注解驱动完善时代:Spring Framework4.x - 注解驱动当下时代:Spring Framework5.x Spring核心注解场景分类 Spring注解 场景说明 @Repository 数据仓储模式注解 @Component 通用组件模式注解 @Se原创 2020-12-12 19:40:18 · 210 阅读 · 0 评论 -
第十七章:Spring事件
Java事件/监听器编程模型 设计模式-观察者模式扩展 •可观者对象(消息发送者)-java.utiLObservable •观察者-java.util.Observer 标准化接口 •事件对象-java.utiLEventObject •事件监听器-java.util. EventListener 面向接口的事件/监听器设计模式 Java技术规范 事件接口 JavaBeans java, beans. PropertyChangeEvent java, beans. Prope原创 2020-11-30 09:25:09 · 130 阅读 · 0 评论 -
第十六章:Spring 泛型处理
Java 泛型基础 泛型类型:泛型类型是在类型上参数化的泛型类或接口。 泛型使用场景: 编译时强类型检查,避免类型强转,实现通用算法。 泛型类型擦写 泛型被引入到 Java 语言中,以便在编译时提供更严格的类型检查并支持泛型编程。类型擦除确保不会为参数化类型创建新类;因此,泛型不会产生运行时开销。为了实现泛型,编译器将类型擦除应用于: 画将泛型类型中的所有类型参数替换为其边界,如果类型参数是无边界的,则将其替换为“Object”。因此,生成的字节码只包含普通类、接口和方法。必要时插入类型转换以保持类型安全原创 2020-11-22 21:34:25 · 343 阅读 · 1 评论 -
第十五章:Spring 类型转换
Spring 类型转换的实现 基于 JavaBeans 接口的类型转换实现 基于 java.beans.PropertyEditor 接口扩展 Spring 3.0+ 通用类型转换实现 使用场景 场景 基于 JavaBeans 接口的类型转换实现 数据绑定 YES BeanWrapper YES Bean 属性类型装换 YES 外部化属性类型转换 NO 基于 JavaBeans 接口的类型转换 核心职责 将 String 类型的内容转化为目标类型的对象 扩展原原创 2020-11-15 22:25:51 · 116 阅读 · 0 评论 -
第十三章-Spring 校验
Spring 校验使用场景 Spring 常规校验(Validator) Spring 数据绑定(DataBinder) Spring Web 参数绑定(WebDataBinder) Spring Web MVC / Spring WebFlux 处理方法参数校验 Validator 接口设计 接口职责 Spring 内部校验器接口,通过编程的方式校验目标对象 核心方法 supports(Class):校验目标类能否校验 validate(Object,Errors):校验目标对象,并将校验失败的内容原创 2020-11-08 22:23:55 · 290 阅读 · 0 评论 -
第十四章- Spring 数据绑定
Spring 数据绑定使用场景 Spring BeanDefinition 到 Bean 实例创建 Spring 数据绑定(DataBinder) Spring Web 参数绑定(WebDataBinder) Spring 数据绑定组件 标准组件 org.springframework.validation.DataBinder Web 组件 org.springframework.web.bind.WebDataBinder org.springframework.web.bind.Servle原创 2020-11-01 13:06:42 · 351 阅读 · 0 评论 -
第十二章 Spring 国际化(i18n)
Spring 国际化使用场景 普通国际化文案 Bean Validation 校验国际化文案 Web 站点页面渲染 Web MVC 错误消息提示 Spring 国际化接口 核心接口 org.springframework.context.MessageSource 主要概念 文案模板编码(code) 文案模板参数(args) 区域(Locale) 层次性 MessageSource Spring 层次性接口回顾 org.springframework.beans.factory.Hierarc原创 2020-10-18 22:03:02 · 156 阅读 · 0 评论 -
第十一章-Spring 资源管理
Java 标准资源管理 职责 说明 面向资源 文件系统、artifact(jar、war、ear 文件)以及远程资源(HTTP、FTP 等) API 整合 java.lang.ClassLoader#getResource、java.io.File 或 java.net.URL 资源定位 java.net.URL 或 java.net.URI 面向流式存储 java.net.URLConnection 协议扩展 java.net.URLStreamHandler 或原创 2020-10-11 19:57:35 · 175 阅读 · 0 评论 -
第十章-Spring 配置元信息
Spring 配置元信息 配置元信息 Spring Bean 配置元信息 - BeanDefinition Spring Bean 属性元信息 - PropertyValues Spring 容器配置元信息 Spring 外部化配置元信息 - PropertySource Spring Profile 元信息 - @Profile Spring Bean 配置元信息 Bean 配置元信息 - BeanDefinition GenericBeanDefinition:通用型 BeanDefinition原创 2020-09-27 20:53:28 · 144 阅读 · 0 评论 -
第九章-Spring Bean 生命周期
Spring Bean 元信息解析阶段 面向资源 BeanDefinition 解 BeanDefinitionReader XML 解析器 - BeanDefinitionParser 面向注解 BeanDefinition 解析 AnnotatedBeanDefinitionReader Spring Bean 注册阶段 BeanDefinition 注册接口 BeanDefinitionRegistry Spring BeanDefinition 合并阶段 BeanDefinition 合原创 2020-09-20 21:54:19 · 864 阅读 · 0 评论 -
第八章-Spring Bean 作用域
Spring Bean 作用域 来源 说明 singleton 默认 Spring Bean 作用域,一个 BeanFactory 有且仅有一个实例 prototype 原型作用域,每次依赖查找和依赖注入生成新 Bean 对象 request 将 Spring Bean 存储在 ServletRequest 上下文中 session 将 Spring Bean 存储在 HttpSession 中 application 将 Spring Bean 存储在 Servle原创 2020-09-06 22:47:54 · 126 阅读 · 0 评论 -
第七章-Spring IoC 依赖来源
依赖查找的来源 来源 配置元数据 Spring BeanDefinition <bean id="user" class="org.geekbang...User"> @Bean public User user(){…} BeanDefinitionBuilder 单例对象 API 实现 Spring 內建 BeanDefintion org.springframework.context.annotation.internalC原创 2020-08-23 16:00:30 · 244 阅读 · 1 评论 -
第六章-Spring IoC 注入
依赖注入的模式和类型 手动模式 - 配置或者编程的方式,提前安排注入规则 XML 资源配置元信息 Java 注解配置元信息 API 配置元信息 自动模式 - 实现方提供依赖自动关联的方式,按照內建的注入规则 Autowiring(自动绑定) 依赖注入的模式和类型 依赖注入类型 依赖注入类型 配置元数据举例 Setter 方法 ’<proeprty name="user" ref="userBean"/> 构造器 <constructor-arg name原创 2020-08-16 21:57:24 · 188 阅读 · 0 评论 -
第五章-Spring 依赖查找
单一类型依赖查找 单一类型依赖查找接口 - BeanFactory 根据 Bean 名称查找 getBean(String) Spring 2.5 覆盖默认参数:getBean(String,Object...) 根据 Bean 类型查找 Bean 实时查找 Spring 3.0 getBean(Class) Spring 4.1 覆盖默认参数:getBean(Class,Object...) Spring 5.1 Bean 延迟查找 getBeanP原创 2020-08-10 23:51:11 · 225 阅读 · 0 评论 -
第四章-Spring Bean定义
定义 Spring Bean BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口,包含: Bean 的类名 Bean 行为配置元素,如作用域、自动绑定的模式,生命周期回调等 其他 Bean 引用,又可称作合作者(collaborators)或者依赖(dependencies) 配置设置,比如 Bean 属性(Properties) BeanDefinition 元信息 Class :Bean 全类名,必须是具体类,不能用抽象类或接口。 Name :Be原创 2020-08-02 22:23:18 · 207 阅读 · 0 评论 -
第三章-Spring IoC容器概述
Spring IoC 依赖查找 第二章讲过Spring IoC概述,接下来直接实操 pom依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> -创建User对象 import org.geekbang.thinking.in.spring.ioc.ov原创 2020-07-27 00:19:41 · 246 阅读 · 0 评论 -
第二章-重新认识Spring IOC
第二章-重新认识Spring IOC IOC的发展 1983年,Richard E. Sweet 在《The Mesa Programming Environment》中提出“Hollywood Principle”(好莱坞原则) 1988年,Ralph E. Johnson & Brian Foote 在《Designing Reusable Classes》中提出“Inversion of control”(控制反转) 1996年,Michael Mattsson 在《Object-Orien原创 2020-07-12 11:51:23 · 366 阅读 · 0 评论 -
第一章 Spring FrameWork总览
第一章 Spring FrameWork总览核心特性(Core)数据存储(Data Access)Web 技术(Web)技术整合(Integration)测试(Testing)Spring 模块化设计(Modular)Spring 编程模型面向对象编程面向切面编程面向元编程函数驱动 核心特性(Core) IoC 容器(IoC Container) Spring 事件(Events) 资源管理(Resources) 国际化(i18n) 校验(Validation) 数据绑定(Data Binding) 类型装原创 2020-07-05 23:17:04 · 804 阅读 · 0 评论