核心容器中bean的操作

news2025/1/19 19:32:09

bean配置

bean基础配置

在这里插入图片描述

bean别名配置

在这里插入图片描述

**注意事项:**获取bean无论是通过id还是name获取,如果无法获取到,将抛出异常NoSuchBeanDefinitionException(NoSuchBeanDefinitionException:No bean named ‘bookServiceImpl’ available)

bean作用范围配置

在这里插入图片描述

bean作用范围说明
  • 为什么bean默认为单例?
  • 适合交给容器进行管理的bean
    • 表现层对象
    • 业务层对象
    • 数据层对象
    • 工具对象
  • 不适合交给容器进行管理的bean
    • 封装实体的域对象

bean实例化

  • bean本质上就是对象,创建bean使用构造方法完成

实例化bean的三种方式

第一种:构造方法(常用)
  • 提供可访问的构造方法
    在这里插入图片描述

  • 配置

在这里插入图片描述

  • 无参构造方法如果不存在,将抛出异常BeanCreationException
第二种:静态工厂(了解)
  • 静态工厂
    在这里插入图片描述

  • 配置

在这里插入图片描述

第三种:实例工厂(了解)
  • 实例工厂

在这里插入图片描述

  • 配置

在这里插入图片描述

第四种:FactoryBean
  • FactoryBean

在这里插入图片描述

  • 配置

在这里插入图片描述

bean生命周期

  • 生命周期:从创建到消亡的完整过程
  • bean生命周期:bean从创建到销毁的整体过程
  • bean生命周期控制:在bean创建后到销毁前做一些事情
bean生命周期控制
  • 提供生命周期控制方法

在这里插入图片描述

  • 配置生命周期控制方法

在这里插入图片描述

接口控制(了解)
  • 实现InitializingBean,DisposableBean接口

在这里插入图片描述

bean生命周期
  • 初始化容器
    1. 创建对象(内存分配)
    2. 执行构造方法
    3. 执行属性注入(set操作)
    4. 执行bean初始化方法
  • 使用bean
    1. 执行业务操作
  • 关闭/销毁容器
    1. 执行bean销毁方法
bean销毁时机
  • 容器关闭前触发bean的销毁
  • 关闭容器方式:
    • 手工关闭容器
      • ConfigurableApplicationContext接口close()操作
    • 注册关闭钩子,在虚拟机退出前先关闭容器再退出虚拟机
      • ConfigurableApplicationContext接口registerShutdownHook()操作

在这里插入图片描述

小结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1215431.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15技术太卷我学APEX-curl请求apex的autoRest

0 curl概述 cURL无处不在。它几乎隐藏在所有设备中,例如汽车,蓝光播放器等。它通过互联网协议传输任意类型数据。 0.1 cURL是什么意思? cURL(客户端URL)是一个开放源代码的命令行工具,也是一个跨平台的库…

智慧工地AI视频管理平台源码

智慧工地是指以物联网、移动互联网技术为基础,充分应用人工智能等信息技术,通过AI赋能建筑行业,对住建项目内人员、车辆、安全、设备、材料等进行智能化管理,实现工地现场生产作业协调、智能处理和科学管理。智慧工地的核心是以一…

三子棋——C语言初阶

一.游戏思路: 设计菜单,选择开始游戏(1)还是退出游戏(0)(若是输入数字不再输入范围内,则“选择错误”)初始化棋盘打印棋盘(步骤二和三不可调换位置)玩家下棋(坐标落子)—…

php-cli

//运行index.php ./php index.php//启动php内置服务器 ./php -S 0.0.0.0:8080//启动内置服务在后台运行,日志输出到本目录下的server.log nohup ./php -S 0.0.0.0:8080 -t . > server.log 2>&1 &# 查找 PHP 进程 ps aux | grep "php -S 0.0.0.0:…

鸿蒙原生应用开发-折叠屏、平板设备服务卡片适配

一、多设备卡片适配原则 为不同尺寸的卡片提供不同的功能 在卡片开发过程中请考虑适配不同尺寸的设备,特别是在折叠屏和平板设备上,设备屏幕尺寸的变化直接影响了卡片内容的展示。请发挥想象力设计具有自适应能力的卡片,避免在卡片内容不做…

Java面试题(每天10题)-------连载(32)

目录 设计模式篇 1、工厂方法模式(利用创建同一接口的不同实例): 2、抽象工厂模式(多个工厂) 3、单例模式(保证对象只有一个实例) 4、原型模式(对一个原型进行复制、克隆产生类…

【Linux】gcc/g++ gdb 使用

目录 1,背景知识 2,gcc 如何完成 1,预处理(进行宏替换) 2,编译(生成汇编) 3,汇编(生成机器可识别代码) 4,连接(生成可执行文件或库文件&…

Lombok超详解

目录 一、Lombok概述 二、Lombok插件安装 三、Lombok相关注解 3.1 Setter和Getter 3.2 ToString 3.3 EqualsAndHashCode,NonNull 3.4 NoArgsConstructor,RequiredArgsConstructor,AllArgsConstructor 3.5 Data 3.6 Builder 3.7 Log…

C++入门第七篇--STL模板--vector模拟实现

前言: 有了前面的string库的介绍,在这里我就不再介绍vector库了,而是直接模拟实现了。 vector库的概念和作用: vector库是针对于数组的数据类型的容器,它有点类似我们曾经实现过的顺序表,你完全可以按照…

C++二分算法:使数组严格递增

涉及知识点 动态规划 二分查找 题目 给你两个整数数组 arr1 和 arr2,返回使 arr1 严格递增所需要的最小「操作」数(可能为 0)。 每一步「操作」中,你可以分别从 arr1 和 arr2 中各选出一个索引,分别为 i 和 j&#…

查询附近500米的餐厅

前言 查询附近500米数据,第一反应是用ST_Buffer,但是ST_Buffer文档写了一句话,使用ST_DWithin效率更高。 ST_Buffer (postgis.net) ST_DWithin (postgis.net) 数据取点 我有一种坐标系4326的表ne_10m_admin_0_boundary_lines_land&#xf…

DataCamp在线学习平台

DataCamp(https://www.datacamp.com/blog)是一个在线学习平台,专注于数据科学和分析领域的教育。该平台提供丰富的课程,涵盖了从数据处理到机器学习和深度学习的各个方面。以下是DataCamp的主要特点: 互动学习&#x…

【Linux】命令expect使用详解

🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…

继电器测试负载箱的价格和性价比如何?

继电器测试负载箱是一种专门用于测试继电器性能的设备,它可以模拟各种负载条件,对继电器进行全方位的性能测试。这种设备在电力系统、自动化设备、通信设备等领域有着广泛的应用。 价格方面,继电器测试负载箱的价格因品牌、型号、性能等因素而…

Lobatto Quadrature-数值积分

See https://mathworld.wolfram.com/LobattoQuadrature.html

达梦数据库常用参数查询

字符集 字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。 字符集 就是一系列字符的集合。字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉字的。 常见的字符集有 ASCII、G…

系列四、本地接口(Native Interface)

一、概述 本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C程序,Java诞生的时候正是C/C横行的时候,要想立足,必须要调用C/C的程序,于是Java就在内存中开辟了一块区域专门用于处理标记为native的代码&a…

如何使用ArcGIS Pro制作粉饰效果

在地图上,如果某个部分比较重要,直接的制图不能将其凸显出来,如果想要突出显示重要部分,可以通过粉饰效果来实现,这里为大家介绍一下方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图…

印染污水处理设备有哪些分类

印染污水处理设备有多种分类方法。根据处理方法,可以分为物理法、化学法、生物法等。 物理法处理设备主要包括格栅、沉淀池、过滤器等,利用物理分离、去除的原理,将污水中的悬浮物和沉淀物去除。化学法处理设备主要包括混凝和氧化等&#xf…

kaggle项目部署

目录 流程详细步骤注意事项 流程 修改模块地址打包项目上传到kaggle Datasets创建code文件,导入数据与项目粘贴train.py文件,调整超参数,选择GPUsave version,后台训练查看训练结果 详细步骤 打开kaggle网站,点击da…