今天把,也算不上是什么好时候,前天,我的邻居阿姨因为癌症不幸逝世了,在感叹现在癌症的肆虐以及声明的卑微的时候,我的另一个邻居,因为这几年长期在别的地方居住,所以我们邻居这个房子最近常年无人居住,致使若干次的被盗,也就是前天,居然在又一次被小偷光顾,小偷见房子已经空无一物,竟然把家里搬不动的东西给砸了,还把玻璃给打碎了,现在的贼的张狂着实可恨呐
那么还是言归正传吧,
今天呢,我们开始正式的讲述spring的核心--bean的一些源码,
由于这些源码有许许多多的接口以及实现组成,并且接口与接口交织在一起,所以我打算先粗略的讲解一下其中大致的接口和实现类的最通用的用法,让大家了解一下他实现的原理,然后,我们再将逐渐的各个方法,每个行的代码去分析
首先呢,我们要先理一理有关的接口和类
org.springframework.core.AliasRegistry,这个是别名管理的公共接口,咱们用到的别名都是用这个储存管理的,里面分别有别名的增删改查的方法
org.springframework.beans.factory.support.BeanDefinitionRegistry,这个接口继承了AliasRegistry接口,它主要是定义了对BeanDefinition的储存管理和操作的增删改查的方法
org.springframework.beans.factory.BeanFactory 这个接口主要定义了对bean的最基本的方法,主要是定义了一些返回bean实例,以及它的范围类型以及别名的信息
org.springframework.beans.factory. ListableBeanFactory定义了对BeanFactory的一些基础的操作
org.springframework.beans.factory.config. SingletonBeanRegistry 这个接口是单例bean的注册表接口,定义了注册单例模式,返回单例模式对象等方法
org.springframework.beans.factory. HierarchicalBeanFactory 这个接口定义了父子beanFactory的信息
首先呢,我们先来分析这几个最基础的接口,
这几个接口,是BeanFactory的最核心的接口,通过这些接口我们可以知道BeanFactory应该具有什么样的功能,他们基本大部分都是直接继承于BeanFactory接口,我们也因此可以说他们是高度抽象以后的接口,定义着最普遍的,最抽象化得方法
那么我这里就提出一个问题,在一个最核心的,分布在接口的最顶端的接口中,到底是什么方法才能算得上是最普遍,最抽象化得方法呢,
鉴于我对这几个接口方法的register方法,get**方法,get**Names以及contain**方法,**count方法,分别对应于注册对象,返回对象,返回所有的对象名称,是否包含指定对象的方法,以及返回方法数目的方法,当然了,如果对于其他有特殊要求的类,则需要有一些另外定义的方法
当然了,这些按功能去分别定义接口的一个好处已经很明显了,通过这些具有层次的接口定义可以更好的明确它们的功能,可扩展性更高,我想这应该是我们对于接口定义学习的一个最大的收获
那么我们接下来分析其他的子接口以及实现类
org.springframework.core. SimpleAliasRegistry 是AliasRegistery的实现类
org.springframework.beans.factory.support. DefaultSingletonBeanRegistry继承了SimpleAliasRegister,并且呢,实现了SingletonBeanRegistry,提供了单例模式的注册表,并且实现了SingletonBeanRegistry的方法
在这里呢,真正值得我们注意的问题就是并发的问题,因为存在多个用户共享一个数据的问题,所以呢,在实现类的基本上每个方法都有synchronized()方法
org.springframework.beans.factory.config. BeanDefinition通俗的说,就是bean元素的最小接口了,定义了bean元素的最基本的信息
org.springframework.core.BeanDefinition接口定义了对属性的管理
org.springframework.beans. BeanMetadataElement接口定义了对bean元数据的最基本定义
好了,说了这么多,我想大家肯定很头晕了,没办法,这是核心的接口和实现类,我们必须要有一个大体的了解,等明天呢,我们再好好讲解一下它是怎么运行的
小辞
分享到:
相关推荐
作为初学者,了解并掌握这些基础知识对于学习 Python 3.0 至关重要。以下是一些关键的知识点,它们在 "www.runoob.com" 提供的菜鸟教程中应该有所涵盖: 1. **基础语法**: - **变量与数据类型**:Python 支持整型...
马士兵老师提供的讲解,对于菜鸟或者是刚学习javaweb和SSH框架的人来说可谓是福音,马老师讲的内容非常详细,同时还会灌输学者一些在实际工作和开发中的一些技巧,特别是代码规范和编程习惯是非常重要的,所以特意...
要安装Python,只需访问官网下载相应版本的安装程序,通常推荐选择稳定版,例如Python 2.7或3.x(目前Python 3.x是最新的主流版本)。安装完成后,需在系统的环境变量中添加Python的安装路径,以便在任何目录下都能...
在本文中,我们将深入探讨Spring的源码,尤其是针对"菜鸟"级别的开发者如何逐步理解并掌握Spring的核心机制。 首先,源码解读对于任何开发者来说都是提升技术能力的重要途径。通过阅读源码,我们可以更直观地了解...
struts2+hibernate3.2+spring3.0实现简单的增删改查
在这个系列的学习中,我们将深入探讨Spring5的核心原理,通过分析源码来揭示其内在的工作机制,并结合实战应用,提升对Spring5的理解和运用能力。 一、Spring5新特性 1. 支持Java 9及以上的版本:Spring5全面支持...
34--[菜鸟闯关].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码34--[菜鸟闯关].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码34--[菜鸟闯关].zip源码scratch2.0 3.0编程项目源文件源码案例素材源...
springcloud简单项目搭建,菜鸟学习Spring Cloud集成相关优质项目推荐 这些项目是Spring Cloud官方项目或是对Spring Cloud进行了有益的补充以及基于Spring Cloud最佳实践。
本教程专为初学者设计,旨在帮助“菜鸟”快速掌握Spring的基本概念和实战技巧。 在Spring入门阶段,首先要理解的是依赖注入(DI)。DI是一种设计模式,它允许我们解耦组件,让它们之间通过接口而非具体的实现进行...
通过学习和实践《菜鸟商城》项目,开发者不仅可以掌握Java后端和安卓客户端的开发技术,还能深入了解电商系统的架构设计和业务逻辑,为今后的项目开发积累宝贵经验。同时,该项目也适合初学者进行实战演练,提升自己...
3. **Spring与Mybatis的整合** - 使用Spring的`@MapperScan`注解扫描Mapper接口。 - 在Service中注入Mapper,通过Mapper接口执行SQL。 **Spring整合Redis** Spring提供了对Redis的支持,通过`spring-data-redis`...
项目概述:深入Python学习实战源码解析 本项目以Python为主要开发语言,基于菜鸟教程的指导,深入探索和实践Python编程。项目包含62个文件,其中38个为...简洁描述:基于菜鸟教程的Python学习实践记录与源码解析集锦。
3、templates 模板文件(重要) 4、libs smarty库 5、templates_c smarty自动生成的文件 6、JS 常用的JS(当时顺手放的) 7、other 乱78遭的东西,以前学HTML时做的 8、html 生成的HTML文件自动放此处 主要文件 ...
易语言源码易语言菜鸟背包游戏源码.rar 易语言源码易语言菜鸟背包游戏源码.rar 易语言源码易语言菜鸟背包游戏源码.rar 易语言源码易语言菜鸟背包游戏源码.rar 易语言源码易语言菜鸟背包游戏源码.rar 易语言源码...
您不需要任何Linux技能也能阅读本教程,Linux菜鸟过关全面解决您的Linux之旅问题。您现在要做的是了解一些Linux知识与安装方法,按照本教程的顺序阅读即可。本教程可以作为您短期突破Linux安装的教材,这一切都不...
【仿菜鸟商城系统(源码)】是一款专为学习目的设计的电商系统,它提供了从用户界面到后台管理的一整套功能,可以帮助开发者理解和实践电子商务平台的构建过程。该系统模仿了真实的在线购物平台——菜鸟网络,因此在...
51菜鸟到arm高手51菜鸟到arm高手51菜鸟到arm高手51菜鸟到arm高手51菜鸟到arm高手51菜鸟到arm高手51菜鸟到arm高手51菜鸟到arm高手
对于spring源码的深度解析,适合菜鸟向中级进阶的时候看看
jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申请了一个网盘.所有...
总的来说,“菜鸟商城”源码是一个功能完备、注释详尽的Android商城应用实例,对于学习Android开发和实际项目经验的积累都有很大帮助。通过深入研究这份源码,开发者不仅可以掌握Android应用开发的基本技能,还能...