Spring IoC 源码解析:自定义标签的解析过程

Spring 中的标签分为默认标签和自定义标签两类,上一篇我们探究了默认标签的解析过程,当然在阅读源码的过程中我们也看到默认标签的解析过程中嵌套了对自定义标签的解析,这是因为默认标签中可以嵌套使用自定义标签,但是这和本篇所要讨论的自定义标签还是有些区别的,上一篇中介绍的自定义标签可以看做是 <bean/> 标签的子标签元素,而本篇所指的标签是与 <bean/> 这类标签平级的自定义标签。

阅读全文

Spring IoC 源码解析:默认标签的解析过程

上一篇中梳理了 bean 加载的整体过程,但是对于过程中涉及到的具体细节没有进行深入探究,我们顺着调用链一层层往下走,最终找到了位于 DefaultBeanDefinitionDocumentReader 类中真正解析配置的方法:parseBeanDefinitions(root, delegate),本篇我们将从这里开始继续向下探索,去追寻解析的具体过程。 Spring 为开发者提供了许多配置用的标签,比如 beans、bean、import、alias 等,这些标签统称为 默认标签(个人觉得翻译成内置标签更加合理),同时 Spring 还支持开发者自己定义标签,parseBeanDefinitions 方法中的逻辑就是判断当前标签是默认标签还是自定义标签,并调用相应的方法对标签进行解析(源码如下),本篇我们主要探索默认标签的解析过程,对于自定义标签则留到下一篇进行讲解。

阅读全文

Spring IoC 源码解析:容器的基本结构设计

IoC(Inversion of Control),即控制反转,是 Spring 的两大基础特性之一,也是面向对象程序设计中的重要法则,其目的是用来降低程序之间的耦合度。控制反转一般分为两种类型,依赖注入(Dependency Injection,简称 DI) 和 依赖查找(Dependency Lookup),不过依赖注入应用更加广泛,所以大部分时候依赖注入等同于控制反转。 在面向对象程序设计中,对象一般用于承载和处理数据,不同对象之间的相互依赖、合作构成了我们的软件系统。设想在大型系统设计中,需要大量的对象通过相互依赖来实现需求,如果这些依赖关系由对象自己去控制和管理,那么耦合度将会很高,不易于系统的扩展和维护,这个时候我们可以将对象的依赖关系交给 IoC 容器进行管理,将对象的新建、引用赋值等操作交由 IoC 容器统一完成,而对象只需要专心负责承载和处理数据即可。这样的设计可以降低系统在实现上的复杂性和耦合度,让系统更加灵活,满足 “开-闭” 原则,并易于扩展和维护。

阅读全文

程序设计中的基本设计原则

在编写一个系统的时候,我们总是希望我们的系统在设计上具备较好的可维护性和可扩展性,从而当客户需求有变,或者需要增加新功能时,能够从容应对,而一些前人总结的设计原则可以让我们在遇到这样的情况时候,不至于被动,从而能够以竟可能小的工作量来实现客户的需求。

阅读全文

利用享元模式解决内存大量细粒度对象

最近在看之前一个自己写的项目代码的时候,发现之前构造的责任链像个楼梯台阶一样的堆在那里,很是影响代码的美观性,并且一条链上的七、八个对象在每次请求时都需要创建一遍,对于一个高并发的项目来说,是一笔不小的开销,于是想对这一块的代码进行优化,而享元模式刚好满足我的需求。

阅读全文

在小米:生态链论坛技术分享与交流

这两天由小米云平台、生态链,以及谷仓学院联合主办的首届 “小米生态链开发者论坛” 在北京举行,30 余家来自全国各地的小米生态链企业的百余名技术负责人和工程师参加了这场小米史上首次技术论坛,很荣幸自己有机会以讲师的身份去参与到这次论坛之中,与大家分享和交流技术心得。

阅读全文

OAuth 2.0 协议原理与实现:token 生成策略

OAuth2.0 协议定义了授权详细流程,并最终以 token 的形式作为用户授权的凭证下发给客户端,客户端后续可以带着 token 去请求资源服务器,获取 token 权限范围内的用户资源。 对于 token 的描述,OAuth 2.0 协议只是一笔带过的说它是一个字符串,用于表示特定的权限、生命周期等,但是却没有明确阐述 token 的生成策略,以及如何去验证一个 token。RFC6749 对于 access token 的描述: The client obtains an access token – a string denoting a specific scope, lifetime, and other access attributes.

阅读全文

OAuth 2.0 协议原理与实现:协议原理

OAuth 2.0 协议是一种三方授权协议,目前大部分的第三方登录与授权都是基于该协议的标准或改进实现。OAuth 1.0 的标准在 2007 年发布,2.0 的标准则在 2011 年发布,其中 2.0 的标准取消所有 token 的加密过程,并简化了授权流程,但因强制使用 HTTPS 协议,被认为安全性高于 1.0 的标准。

阅读全文

Powered by hexo & Theme by hiero   Copyright © 2015-2019 浙ICP备 16010916  号,指 · 间 All Rights Reserved.