Spring的BeanNameAware和BeanFactoryAware接口

2023-11-07

BeanNameAware

作用:让Bean获取自己在BeanFactory配置中的名字(根据情况是id或者name)。
Spring自动调用。并且会在Spring自身完成Bean配置之后,且在调用任何Bean生命周期回调(初始化或者销毁)方法之前就调用这个方法。换言之,在程序中使用BeanFactory.getBean(String beanName)之前,Bean的名字就已经设定好了。

BeanFactoryAware

作用:让Bean获取配置他们的BeanFactory的引用。

这个方法可能是在根据某个配置文件创建了一个新工厂之后,Spring才调用这个方法,并把BeanFactory注入到Bean中。
让bean获取配置自己的工厂之后,当然可以在Bean中使用这个工厂的getBean()方法,但是,实际上非常不推荐这样做,因为结果是进一步加大Bean与Spring的耦合,而且,能通过DI注入进来的尽量通过DI来注入。
当然,除了查找bean,BeanFactory可以提供大量其他的功能,例如销毁singleton模式的Bean。
factory.preInstantiateSingletons();方法。preInstantiateSingletons()方法立即实例化所有的Bean实例,有必要对这个方法和Spring加载bean的机制做个简单说明。
方法本身的目的是让Spring立即处理工厂中所有Bean的定义,并且将这些Bean全部实例化。因为Spring默认实例化Bean的情况下,采用的是lazy机制,换言之,如果不通过getBean()方法(BeanFactory或者ApplicationContext的方法)获取Bean的话,那么为了节省内存将不实例话Bean,只有在Bean被调用的时候才实例化他们。

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

Spring的BeanNameAware和BeanFactoryAware接口 的相关文章

随机推荐

  • 定位Flutter内存问题很难么?

    简介 flutter内存泄漏定位 作者 闲鱼技术 三莅 内存水位升高导致的稳定性问题严重影响app用户体验 所以开发者们非常关注Flutter的内存表现 随着Flutter业务越来越多 闲鱼也面临着oom导致的crash率提升的问题 下面我
  • 两个经典回文字符串问题中的巧妙算法

    问题一 最长回文子串 给定一个字符串 s 找到 s 中最长的回文子串 第一眼的想法是暴力法 由于其时间复杂度高达O n 3 当s过长时效率会特别低 方法一 中心扩展算法 其思想就是遍历一遍字符串 其中在每一个点都进行以其为中心而均匀展开 分
  • 内网隧道搭建ksa工具-端对端-无需公网VPS做流量转发

    1 前言 看雪安全接入 KSA 一款傻瓜式的一键接入私有网络的工具 无论您在任何地点 任何时间 使用任何线路 均可利用这一服务接入自己的私有设备 KSA的服务端和客户端集成在一个可执行文件之中 目前支持Windows macOS和Linux
  • LU分解算法(串行、并行)

    一 串行LU分解算法 详细见MIT线性代数 1 LU分解 矩阵分解 LU分解 分解形式 L 下三角矩阵 U 上三角矩阵 目的 提高计算效率 前提 1 矩阵A为方阵 2 矩阵可逆 满秩矩阵 3 消元过程中没有0主元出现 也就是消元过程中不能出
  • sql ntext數據類型字符替換

    ntext數據類型字符替換 2011 08 21 塗聚文 深圳大運會期間 政府貼出 溫馨提示 交通管制 世界之窗周邊不充許到陽台觀看 出入憑居住證不是身份證 create table tt sid INT IDENTITY 1 1 cont
  • 数据库访问-records库

    records是由requests作者开发的一个DB访问库 与requests的宗旨一样 records也力图成为一个非常易用的DB库 它是基于SQLAlchemy库封装的一个上层库 import records db records Da
  • C++:常见错误LNK2019的几种原因

    转自 https www cnblogs com thisway p 5497200 html error LNK2019问题在VC 6 0中是error LNK2001 unresolved external symbol问题 可能错误号
  • NEUQ OJ 1233: 幸运儿

    题目描述 n 个人围成一圈 并依次编号1 n 从编号为1 的人开始 按顺时针方向每隔一人选出一个 剩下的人重新围成一圈 如此循环直到剩下两人 这剩下的两人就是幸运儿 如果你想成为最后两个幸运儿 请问开始时应该站在什么位置 设3 lt n l
  • 阻止默认事件的方法_React 基础:3种事件绑定方式,避免 this 引用丢失

    前言 这系列是 React 基础教程 参考 React 官网 记录了自己入门学习 React 的笔记 不太适合有 React 丰富经验的同学 但希望看到此文的你 多少都有些收获 文章代码均可在我的码云中找到 https gitee com
  • flutter图片预览_Flutter 视频缩略图

    在做即时通讯前整理了一个视频缩略图的工具类 可供码农直接放入项目中使用 涉及到的插件 video player 0 10 11 2 话不多说代码如下 import package flutter material dart import p
  • Linux系统架构概述

    一 Unix Linux架构 严格意义上 操作系统定义为 控制计算机硬件资源的软件 同时提供坏境让程序可以运行 Linux系统一般有4个主要部分 内核 shell 文件系统和应用程序 内核 shell和文件系统一起形成了基本的操作系统结构
  • 【DahO安装及使用】

    1 安装 Step 1 官网注册帐号 注册地址在这里 注册完毕默认登录 Step 2 点击下载链接 下载你需要的版本 这里 我下载的是DashO的Windows版本 下载完毕后官方会向您发送邮件 复制其中的 key Step 3 下载完毕后
  • 程序员常用的快捷键,你都用到了吗

    Windows系列 Windows M 最小化所有窗口 Windows R 运行某个程序 打开运行窗口 开启运行对话框 Windows E 快速打开我的电脑 Windows L 电脑锁屏 Windows D 显示 恢复桌面 Windows
  • 华为OD机试 - 找终点(Java)

    题目描述 给定一个正整数数组 设为nums 最大为100个成员 求从第一个成员开始 正好走到数组最后一个成员 所使用的最少步骤数 要求 第一步必须从第一元素开始 且1 lt 第一步的步长
  • Java面向对象编程

    下列关于线程的说法错误的是 A 耗时的操作使用线程 提高程序响应 B 耗内存的操作使用线程 提高内存利用率 C 多CPU的系统使用线程 提高CPU利用率 D 并行操作使用线程 如c s架构中服务端程序为每个客户端请求创建一个线程来响应 答案
  • Linux下cppcheck静态检测工具

    1 cppcheck工具说明 cppcheck工具是一个C C 代码缺陷静态检查工具 它不仅可以检查代码中的语法错误 还可以检查出编译器检查不出来的缺陷 从而辅助提升代码质量 2 Linux下cppcheck工具安装 Linux终端输入 s
  • NIO之多路复用

    一 NIO简介 1 Java BIO 同步并阻塞 传统阻塞型 服务器实现模式为一个连接一个线程 即客户端有连接请求时服务器端就需要启动一个线程进行处理 如果这个线程不做任何事情就会造成不必要的开销 2 Java NIO 同步非阻塞 服务器实
  • js高阶函数

    高阶函数特点 1 函数的返回值是一个函数 2 函数的参数是一个函数 回调函数 高阶函数作用 1 将函数的参数预置 2 对函数进行功能扩展 高阶函数应用 闭包是基于高阶函数特性产生的 但高阶函数不一定就是闭包 Promise 函数柯里化 函数
  • react native中ScrollView嵌套TextInput安卓端有滑动问题

    react native中ScrollView嵌套TextInput安卓端有滑动问题 1 1 问题描述 react native中ScrollView嵌套TextInput TextInput组件设置了 textAligin right 后
  • Spring的BeanNameAware和BeanFactoryAware接口

    BeanNameAware 作用 让Bean获取自己在BeanFactory配置中的名字 根据情况是id或者name Spring自动调用 并且会在Spring自身完成Bean配置之后 且在调用任何Bean生命周期回调 初始化或者销毁 方法