在 Spring源码学习【二】IOC容器的初始化(二)BeanDefinition载入 中,我们分析了BeanDefinition的载入过程,同时也留下了这样一句注释: // TODO:待深入学习AbstractBeanDefinition beanDefinition = parseBeanDef ...
Spring源码学习【二】IOC容器的初始化(三)BeanDefinition注册
总览经过以上的分析,我们知道Document中BeanDefinition的解析是在DefaultBeanDefinitionDocumentReader中进行的,让我们回到DefaultBeanDefinitionDocumentReader的processBeanDefinition方法中,继续 ...
Spring源码学习【二】IOC容器的初始化(二)BeanDefinition载入
总览经过前一篇(Spring源码学习【二】IOC容器的初始化(一)Resource定位)的分析,我们对IOC容器的初始化过程已经有了一定的了解。IOC的初始化由refresh()方法启动,最终对Resource的载入是由XmlBeanDefinitionReader处理的。参考上一节中6.loadB ...
Spring源码学习【二】IOC容器的初始化(一)Resource定位
总览在使用IOC容器之前,需要定义一个Resource来定位容器BeanDefinition的资源文件,Resource类继承关系如下图所示,参考使用XmlBeanFactory 和DefaultListableBeanFactory两个IOC容器时,均使用了ClassPathRescource作为 ...
Spring源码学习【一】初识IOC容器
IOC和DIIOC(Inversion Of Control):控制反转,是Spring的核心。所谓控制反转,就是将对象的创建和管理交由Spring容器控制,这是一种重要的面向对象设计思想,能够帮助我们设计出低耦合的程序。 DI(Dependency Injection):依赖注入。在运行期间,动态 ...
分布式事务学习笔记--相关理论和经典解决方案
前言互联网数据井喷式发展使得单机数据库的性能遇到了瓶颈,这时我们通常会对数据库进行分区,即分库分表,在这种情况下,就需要解决分布式数据库的数据一致性问题,即分布式事务。长期以来,分布式事务都是分布式架构的系统中的一个技术难题,下面我们一起来学习一下分布式事务的相关知识。 相关概念ACID特性首先,让 ...
Tensorflow卷积神经网络(CNN)手写数字识别示例学习
问题描述利用卷积神经网络将MNIST数据集的28×28像素的灰度手写数字图片识别为相应的数字。 数据描述MNIST数据集是28×28像素的灰度手写数字图片,其中数字的范围从0到9 具体如下所示(参考自Tensorflow官方文档): 文件 内容 train-images-idx3-ub ...
遗传算法求解TSP问题
问题描述旅行商问题是图论中的一个经典问题。 假设有一个旅行商人要拜访N个城市,要求他从一个城市出发,每个城市最多拜访一次,最后要回到出发的城市,保证所选择的路径长度最短。 算法描述算法简介遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型 ...
利用极小极大搜索和alpha-beta剪枝算法预测五子棋对弈落子
问题描述利用极小极大搜索和alpha-beta剪枝算法预测五子棋落子问题,初始棋局如图所示,AI为白子,玩家为黑子,当前由AI落子。 算法描述极小化极大算法极小化极大搜索是一种在有限的深度范围内搜索博弈树的求解方法,程序代表AI方MAX节点,目的是打败玩家,基本原理为: (1)轮到MIN落子时,M ...
A*算法求解15数码问题
问题描述利用A*算法进行表1到表2的转换,要求空白块移动次数最少。 转换规则为:空白块只可以与上下左右四个方向的相邻数字交换。 算法简介A*算法是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。该算法综合了Best-First Search和Dijkstra算法的优点:在进行启发式搜索提 ...