自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Spring源码深度解析总结(7)—— 容器的扩展功能

经过之前的分析,我们已经了解了Spring是如何解析和加载的bean的。但是在上一篇文章结束的时候说到,一般我们写程序是不会用到BeanFactory来当做Spring的容器的,一般使用的是ApplicationContext作为Spring的容器。这两者之间有什么区别呢?ApplicationContext和BeanFactory在Spring中都是用于加载bean的,但是Application...

2018-07-04 11:08:44 972

原创 Spring源码深度解析总结(6)—— 配置文件的读取和Bean的加载(四)

经过前面的分析,我们终于结束了对XML配置文件的解析,接下来将会面对更大的挑战,就是对bean加载的探索。bean加载的功能的实现远比bean的解析复杂的多,同样,我们还是以最简单的示例为基础,对于bean的功能,在Spring中的调用方式为:MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");这句代码实现了什么样的功能呢,我们可以先快...

2018-06-21 16:55:48 1069 1

原创 Spring源码深度解析总结(番外篇)—— 循环依赖

待定

2018-06-15 11:41:20 866

原创 Spring源码深度解析总结(5)—— 配置文件的读取和Bean的加载(三)

上一篇我们将Spring解析默认标签bean的流程了解了一遍,这篇文章我们继续来看一下对于自定义标签bean,Spring又是如何解析的。在开始看代码之前,我们先了解一下自定义标签的使用过程在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准bean来配置,但配置较为复杂或者需要更多丰富控制的时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的XML文件...

2018-06-11 14:48:09 372

原创 Spring源码深度解析总结(番外篇)—— bean的属性的作用和值

我们在xml配置文件中配置bean的过程中经常会使用一些属性来定义bean,而在bean的解析过程中,Spring也对这些属性一一的进行了解析,如果了解过这些属性的作用之后,我们会对代码有着更深刻的理解。这些属性有的常用有的不常用,下面就来总结一下这些属性(一)scope:定义bean的作用域的属性。默认值为singleton。下面是该属性可以使用的值(1)singleton(单例):在整个应用中...

2018-05-31 22:50:04 585

原创 Spring源码深度解析总结(4)—— 配置文件的读取和Bean的加载(二)

上一篇文章讲到了Spring对于Bean的解析分为默认声明解析和自定义声明解析,这两种声明的解析差别还是很大的,所以我们分开来说。按照常理,默认的总是简单的,所以我们先看一看默认声明的解析是实现。    private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { //对import...

2018-05-30 17:11:06 1160 1

原创 Spring源码深度解析总结(3)—— 配置文件的读取和Bean的加载(一)

上一篇总结了Spring利用Resource接口对配置文件的封装,接下来我们要看看Spring对封装好的资源是如何解析的,以及如何利用解析出的信息加载Bean的。BeanFactory bf = new XmlBeanFactory(new ClassPathResoure("test.xml"));我们继续来看这个例子,上一篇中ClassPathResource已经将配置文件封装成了Resour...

2018-05-25 16:49:04 881

原创 Spring源码深度解析总结(2)—— 资源文件的封装

上一篇文章我们介绍了Spring中非常重要的一个类XmlBeanFactory的结构组成,整个类可以分为两个部分来看,一个是资源文件的加载和解析,另一个就是Bean的获取,这篇文章就主要总结一下资源文件的加载方面的流程和源码。example:BeanFactory bf = new XmlBeanFactory(new ClassPathResoure("test.xml"));上面就是一个通过B...

2018-05-24 14:39:02 329

原创 Spring源码深度解析总结(1)——XmlBeanFactory的结构组成

最近在读《Spring源码深度分析》这本书,虽然讲的是Spring3.0版本的东西,但是基本的思想还是相同的。所以我打算一边读一边做一些总结,一方面在看过一边之后再捋一遍整体的过程,另一方面也防止日后忘记某些东西无处可查。在开始源码阅读之前,我们首先要了解一下Spring中常用的一些类的名称和作用,不然很有可能到最后把自己绕晕了。以下大部分摘自书中的原话DefaultListableBeanFac...

2018-05-23 14:54:39 507

原创 LeetCode刷题(五) —— 无重复字符的最长子串

题目:给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列  而不是子串。分析:最简单的方法是遍历两次字符串

2018-05-07 14:11:23 232

原创 LeetCode刷题(四) —— 两数相加

题目:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807分析:很简单的一个对链表进行遍历操作的题。每次遍...

2018-05-07 13:55:48 125

原创 LeetCode刷题(三) —— 两数之和

题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [分析:这个问题是数组中元素的求和问题,可以用最暴力的遍历两次数组解决,时间复杂度为O(n²),效率比较底下。我采...

2018-05-04 21:28:23 137

原创 LeetCode刷题(二) —— 整数拆分

题目:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。例如,给定 n = 2,返回1(2 = 1 + 1);给定 n = 10,返回36(10 = 3 + 3 + 4)。注意:你可以假设 n 不小于2且不大于58。分析:这个问题实际是一个动态规划问题。我们所要避免的是在和中尽可能少的出现1,所以设n = x1 + x2 + x3 + ... ...

2018-05-03 10:22:01 3686 2

原创 LeetCode刷题(一) —— 等差数列划分

题目:如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7 数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果满足...

2018-05-02 21:42:06 864

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除