Spring之BeanFactory学习笔记

2023-11-14

类图:

 

一.注解

The root interface for accessing a Spring bean container.

BeanFactory:是获取IOC容器的根接口,提供了IoC容器所应该遵循的最基本的服务契约。

IoC容器实际上代表一系列功能各异的容器产品,是容器的功能有大有小,有各自的特点,但要满足一些基本特性,BeanFactory就定义了那些最基本的特性,因此可以说Spring中所有的容器实现追根溯源都实现了BeanFactory。

二.参数

String FACTORY_BEAN_PREFIX = "&";

用户使用容器时,可以使用转义符&来得到FactoryBean本身, 用来区分通过容器获取产生的对象和获取FactoryBean本身。

对FactoryBean转义的定义,因为如果使用bean名字检索FactoryBean得到的对象是工厂生成的对象,如果需要得到工厂本身,需要转义。

BeanFactory和FactroyBean之间的区别:

BeanFactory是IoC容器或对象工厂,FactoryBean是bean,但不是简单的bean,而是能产生bean的bean,是一个能产生或修饰对象生成的工厂Bean。

具体代码中的实例:

(待补充)

三.方法

主要定义了一些获取bean、判断bean是否存在、判断bean的属性、判断bean的类型、获取bean的别名的方法。

1.Object getBean(String name) throws BeansException;

这个方法是使用IoC容器API的主要方法,通过这个方法,可以取得IoC容器中管理的bean,bean的取得是通过指定名字来索引的。

2.<T> T getBean(String name, Class<T> requiredType) throws BeansException;

如果需要在获取bean时对bean的类型进行检查,使用这个方法,与上面那个getBean类似,不同的是增加了对Bean检索的类型的要求。

3.boolean containsBean(String name);

让用户判断容器是否含有指定名字的Bean

4.boolean isSingleton(String name) throws NoSuchBeanDefinitionException;

查询指定名字的Bean是否是Singleton类型的Bean。对于Singleton属性,用户可以在BeanDefinition中指定。

5.boolean isPrototype(String name) throws NoSuchBeanDefinitionException;

查询指定名字的Bean是否是prototype类型的,与Singleton属性一样,这个属性也可以由用户在BeanDefinition中指定。

6.

boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;

查询指定了名字的Bean的Class类型是否是特定的Class类型。这个Class类型可以由用户来指定。

7.

Class<?> getType(String name) throws NoSuchBeanDefinitionException;
Class<?> getType(String name, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException;

查询指定名字的Bean的Class类型。

8.String[] getAliases(String name);

查询指定名字的鹅Bean的所有别名,这些别名都是用户在BeanDefinition中定义的。

四.具体的实现有哪些

常用的有:

1.DefaultListableBeanFactory:

包含了基本IoC容器所具有的重要功能,在Spring中,实际上是把DefaultListableBeanFactory作为一个默认的功能完整的IoC容器来使用的。

2.XmlBeanFactory

继承了DefaultListableBeanFactory的同时,增加了新功能:可以读取以XML文件方式定义的BeanDefinition。在XmlBeanFactory中初始化了一个XmlBeanDefinitionReader对象,由它来对XML形式的信息进行处理。

3......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring之BeanFactory学习笔记 的相关文章

随机推荐

  • ROS下进行人脸识别并输出人脸坐标位置

    功能包下载链接 https download csdn net download qq 42145185 12265062 启动命令 roslaunch face tracker pkg start tracking launch 核心检测
  • solidity:智能合约结构介绍

    合约结构介绍 1 SPDX 版权声明 bytecode metadata 介绍 2 pragma solidity 版本限制 3 contract 关键字 4 import 导入声明 5 interface 接口 6 library 库合约
  • linux系统Web服务配置

    目录 一 什么是Web服务 二 Web服务的架构 三 Web服务的配置 1 安装Apache 2 配置Apache 3 安装MySQL 4 配置MySQL 5 安装PHP 6 配置PHP 四 Web服务的测试 五 Web服务的权限管理 六
  • 泛微oa 明细数据合计

    由于工作的原因接触到了泛微这个支持二次开发的系统 这个系统除了新建页面需要用到一次开发之外 主要采用react的语法来开发 大部分工作都只需要微量的代码支持 在一次开发当中需要统计某一些数据的计算 这也算是一个高并发的问题 因为用户总是不愿
  • 最全最好的Tracker地址目录

    我们在使用BT下载器 例如qBittorrent 下载东西 经常会遇到下载慢 甚至没有速度的情况 添加trackers可以帮助我们连接到更多的资源节点 解决下载没速度的问题 给下载加速 是必备操作 最全最好Trackers 地址目录 打开上
  • maven之 详细介绍

    Maven Build Resources 功能 主要用于打包资源文件 默认情况下maven只打包src main resource下的资源 通过 1 设置build resources 2 使用build helper maven plu
  • UUVsimulator仿真

    UUV Simulator Based on Gazebo 使用版本 Ubuntu20 04 ros Noetic gazebo 11 下载 https github com arturmiller uuv simulator tree n
  • Ubuntu14.04 安装opencv记录

    一 下载源码 安装软件版本为 opencv 3 2 0 zip 软件包 链接 https pan baidu com s 1d51XYqoUcWvbXjM2JW GDQ 提取码 c8vv 二 安装相关库与工具 1 安装相关库 sudo ap
  • MIPS 指令

    MIPS 指令 指令 功能 应用实例 LB 从存储器中读取一个字节的数据到寄存器中 LB R1 0 R2 LH 从存储器中读取半个字的数据到寄存器中 LH R1 0 R2 LW 从存储器中读取一个字的数据到寄存器中 LW R1 0 R2 L
  • 【计算机毕业设计】基于微信小程序的英语学习交流平台 英语学习交流小程序

    毕设帮助 源码交流 技术解答 见文末 一 前言 随着现代化信息技术的迅猛发展 不仅影响了人们的日常交流 也给语言学习者带来了一种新型的学习方式 在这种趋势下 应运而生了许多不同于传统意义上的学习方法 英语学习系统则是其中一种极具有代表的方式
  • 前端页面添加全局水印或指定页面添加水印

    前言 为了防止信息泄露或知识产权被侵犯 在web的世界里 对于图片文档等增加水印处理是十分有必要的 水印的添加根据环境可以分为两大类 前端浏览器环境添加和后端服务环境添加 今天介绍的就是通过canvas创建一张含有水印信息的背景图片 通过v
  • 「译」Web安全快速入门

    Web安全快速入门 几个Web开发人员必知的安全缩略语 原文 A quick introduction to web security 作者 Austin Tackaberry 发表时间 2018 8 15 译者 陈 昌茂 发表时间 201
  • python 调用JS 之 py_mini_racer 初体验

    前言 之前苦于 python 使用 execjs 调用JS里的函数时 没办法动态缓存JS里的环境 然后当时的思路是将动态变化的环境提取出来 然后在写进JS代码里进行持续调用 但是这样做实在是不够优雅 正文 就在昨天 群里的泰迪佬告诉了我这个
  • 机器学习实战—决策树算法

    文章目录 一 简介 二 决策树训练和可视化 2 1 决策树分类算法使用 2 2 决策树可视化 2 3 决策树预测流程 2 4 决策树估计类概率 三 CART剪枝训练算法 3 1 简介 3 2 Cart分类成本函数 四 基尼不纯度或熵 4 1
  • python中save 函数_超全Python图像处理讲解!花五天才整理的!

    文章目录1 1 打开图片和显示图片 1 2 创建一个简单的图像 1 4 图像旋转和格式转换 三 ImageChops模块 图像合成 四 ImageEnhance模块 色彩 亮度 Pillow模块讲解 一 Image模块 1 1 打开图片和显
  • ngnix配置集群负载均衡——upstream模块

    测试包下来让他以守护进程的方式运行 nohup java jar demo 1 jar nohup java jar demo 2 jar 阿里云盘 测试所需要的两个jar包 https www aliyundrive com s XMYx
  • 如何创建Silverlight 项目

    Silverlight Silverlight Tools 您可以使用已经掌握的技术和熟悉的工具创建基于 Silverlight 的应用程序 本主题介绍开发用于 Silverlight 3 的应用程序时可使用的各种工具 本主题包括下列各节
  • Markdown使用(MarkdownPad2 表格不显示处理)

    MarkdownPad2 表格不显示处理 1 添加表格的扩展 工具 选项 Markdown Markdown处理器 改为 Markdown 扩展 即可 2 在设置的过程中要注册markdownpad2 邮箱 Soar360 live com
  • MySQL之索引的使用

    SQL CREATE INDEX 语法 在表上创建一个简单的索引 允许使用重复的值 CREATE INDEX index name ON table name column name 如果您希望以降序索引某个列中的值 您可以在列名称之后添加
  • Spring之BeanFactory学习笔记

    类图 一 注解 The root interface for accessing a Spring bean container BeanFactory 是获取IOC容器的根接口 提供了IoC容器所应该遵循的最基本的服务契约 IoC容器实际