spring容器对Bean组件的管理

2023-05-16

spring容器对Bean组件的管理

1. Bean对象创建时机

    默认是随着容器创建,可以使用lazy-init=true (在调用getBean创建) 
    延迟创建,也可以使用<beans  default-lazy-init=true>   批量延迟创建  

2. Bean对象创建模式

  • 默认是单例模式,可以使用scope属性改变
  • singleton:单例,每次调用getBean返回同一个对象
  • prototype:原型,没调用getBean返回新对象
  • request:仅限于Web环境,表示bean对象生命周期和request生命周期相同
  • session:仅限于Web环境,等同于Web中的session
  • global session:仅限于Web环境,等同于Web中的Application

3、Bean的销毁

  • init-method属性用于指定初始化方法
  • destory-method属性用于指定销毁方法,仅适用于singleton模式

DI依赖注入
DI(依赖注入)是IOC实现的重要技术,2种方式:
1、setter方法注入
2、构造方式注入
注入类型:简单值、集合、Bean对象

IOC和DI关系
Spring是具有IOC特性的框架
实现IOC是由Spring容器来完成的,Spring容器通过依赖注入DI建立起对象(组件、Bean)之间的关系
DI是IOC实现的一种手段,IOC通过DI来实现

4、注解配置方式

  • 常用配置方式有XML文档配置,还有一种是通过注解方式配置
  • 采用注解方式的目的就是为了简化XML模式
  • 注解方式(注释)是JDK5版本提供的,之前的版本不支持。既JDK1.4及以下版本不支持
  • Spring2.5版本后支持注解方式,之前的不支持

1)组件自动扫描功能( 首先需要在applicationContext.xml中添加context:componet-scan/)

a、扫描Bean组件的注解,替代XML中的元素的定义
@Service用于Service业务组件
@Control用于Action控制组件
@Responsitory用于DAO数据库访问组件
@Component用于其他组件
Bean组件扫描到容器后,默认名字为类名(首字母小写)如果需要自定义名称可以使用@service(“id名”)

b、依赖注入的注解标记
@Resource按名称@resource(name=“id名”)
JDk提供的先按类型后按名称来自动装配
@AutoWirde自动名称
@Qualifier(“id名”)
Spring提供的先按名称后按类型来自动装配
@AutoWirde自动名称
@Qualifier(“id名”)
@AutoWirde和 @Resource功能相同,@AutoWirde也是用于自动装配的 ,就是在自定义名称是需要再多加一个 @Qualifier(“id名”)
来指定自定义名称。 @AutoWirde后不能直接使用自定义名称
c、其他注解
@scope等价于
@PostConstruct 等价于
@PreDestory等价于
注解方式和XML形式各有优劣,注解方式现在比较流行
注解方式的优点是使用方便,缺点是java代码掺合在一起,不好修改
XML方式的优点是修改方便,缺点是配置工作量大

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

spring容器对Bean组件的管理 的相关文章

  • 多生产者多消费者解决方式

    在上一篇博客中记录了如何解决普通生产者消费者的问题 xff0c 这篇讲一下如何解决多生产者多消费者问题 多生产者多消费者问题案例 xff1a 一家四口围着一个盘子 xff0c 盘子中最多放两个水果 爸爸不断向盘子中投放苹果 xff0c 儿子
  • 关于Java NoSuchElementException: No value present以及java.lang.NullPointerException处理

    1 Java NoSuchElementException No value present while curSum lt 100 找出小数余额最大的组 xff0c 对其进行加1 CircleRequest max 61 list str
  • 手机号无法验证,如何注册推特

    Twitter无法添加 验证中国手机号码 xff1f 既然Twitter无法添加 验证中国手机号码 xff0c 怎么解冻呢 xff1f 以下是推特注册时 xff0c 验证 43 86手机号解决方法 xff1a 进入账号申诉页面 点此进入 T
  • vue安装vue-router出错

    项目场景 xff1a 在vue中安装vue router 问题描述 xff1a 提示 xff1a 在安装过程中报错 xff0c 缺少依赖 xff1a PS D span class token punctuation span WebDep
  • SpringBoot之SpringSecurity(安全)

    SpringSecurity xff08 安全 xff09 Spring Security是针对Spring项目的安全框架 xff0c 也是Spring Boot底层安全模块默认的技术选型 xff0c 他可以实现强大的Web安全控制 xff
  • 解决决SpringBoot图片上传需重启服务器才能显示的问题

    问题描述 xff1a 前端页面实现头像图片上传并实时更新显示的功能 xff0c 但是文件上传成功后不能实时显示 xff0c 必须重启服务器后才能显示出来 下图是我将图片文件上到到的目录 xff0c 及项目架构 问题发生的原因 这是服务器的自
  • html页面实现登录验证码功能(纯前端)

    html 43 css 43 javascript简易实现注册或登录时实现验证码功能 xff1a 原文链接 xff1a https blog csdn net weixin 41472431 article details 90732468
  • lvs2种模式和haproxy配置

    lvs配置方法 nat模式配置 ip类型ip地址VIP仅主机模式192 168 96 134DIP192 168 149 143host1IP192 168 149 140host2IP192 168 149 137 host1配置 spa
  • js中复选框checkbox如何判定为被选中

    在学习的过程中触及到html分离式开发的内容 xff0c 其中复选框checkbox判定选中对于ajax传数据来说十分重要 xff0c 故将该篇文章转发留存 xff0c 方便以后查阅 要想判定复选框选中状态可以使用 xff1a 34 tes
  • springboot使用ssh公钥连接mysql(含账号密码连接)

    引言 在项目开发过程中 xff0c 遇到了连接数据库时需要使用ssh公钥的情况 在本地使用navicat可以直接通过可视化界面去进行ssh的连接 xff0c 但是在java中无法直接去进行连接 后来经过查询资料 xff0c 发现必须要在ja
  • Spring boot使用Maven Profile配合Spring Profile进行多环境配置和打包

    引言 参考文章 xff1a https cloud tencent com developer article 1769239 最近在项目中有遇见maven的多环境配置 xff0c 由于以前没有接触过 xff0c 所以查阅资料后记录为笔记
  • idea中使用maven进行多模块打包部署时jar包中无依赖的问题(示例:jar包才5k,且无法正常启动)

    引言 模块关系 xff1a A xff1a 代表父工程B xff1a 代表WEB模块 xff0c 主加载类所在模块S xff1a 业务处理模块D xff1a 数据处理模块E xff1a 基础模块 依赖关系如下 xff1a D依赖ES依赖EB
  • 汇总maven配置失败问题

    1 maven的下载路径里面有中文或者符号 每个路径都要用英文 xff01 xff01 xff01 2 在系统环境中新建 变量名 xff1a MAVEN HOME 变量值 xff1a D Program Files apache maven
  • emq中测试连接8083成功,连接8084失败

    今天在emq中测试连接 xff0c 发现不加密的8083可以连上 xff0c 但加密的8084却连接不上 xff0c 搞半天才发现还有ssl文件未配置 经过找资料得知 xff0c 我是因为服务器上的emqx未配置 1 在域名配置ssl证书后
  • 〖小狼毫〗小狼毫初次使用配置

    这次配置是在中文全拼方式下进行的 xff0c 其他的输入方式可参考一下 xff1b 配置相关资料均来自于网络 一 这次配置实现的功能 英文单词输入日期时间类型输入 xff08 包括年 月 日 星期 几点几分 xff09 表情及颜文字输入 x
  • Windows10桌面美化——打造简洁高效美观桌面

    这是小编的Windows桌面 xff1a 常用的软件都固定在了任务栏上且进行了居中美化 所有的软件都固定在了开始屏幕上 我们的思路是 xff1a 把所有软件全部放在开始屏幕中 xff0c 需要使用时 按下键盘上的 window徽标键 打开
  • 学习笔记:医学图像配准简介—附voxelmorph模型

    VoxelMorph官方代码 xff1a GitHub voxelmorph voxelmorph Unsupervised Learning for Image Registrationb 本文参考了博客 xff1a 基于深度学习的单模医
  • 解决Powershell前面没有base,无法激活虚拟环境问题

    解决Powershell前面没有base xff0c 无法激活虚拟环境问题 1 Windows Powershell与CMD区别 在Win10系统下 xff0c 按住Shift然后点击鼠标右键进入Windows Powershell xff
  • LAMT配置

    tomcat项目部署 java环境安装 span class token punctuation span root 64 host span class token punctuation span span class token co
  • atc: invalid option -- ‘-‘

    最近在参加CANN训练营第三期 xff0c 在做应用课后作业的时候使用atc转化工具出现了如下错误 xff0c 百思不得其解 xff0c 看错误的原因是输入的atc命令都是合法的 xff0c 再看最后一行发现atc在 usr share g

随机推荐

  • 使用Anaconda安装Pychorm和torch ,cmd窗口进入python环境没有问题,但是在Pychorm中编写代码报错找不到torch包

    遇到这种问题很可能的原因是在Pychorm中创建工程时候选择的python解释器选择错误 xff0c 如果自己的电脑上之前就有安装的python IDE xff0c 但是没有安装torch包 xff0c 当选择这个解释器的时候就会出现找不到
  • MindSpore实现手写数字识别代码

    MindSpore是华为自研的一套AI框架 xff0c 最佳匹配昇腾处理器 xff0c 最大程度地发挥硬件能力 作为AI入门的LeNet手写字体识别网络 xff0c 网络大小和数据集都不大 xff0c 可以在CPU上面进行训练和推理 下面是
  • ATC模型转换

    xff08 1 xff09 在使用昇腾硬件 xff08 例如Atlas200 xff09 进行模型推理的时候 xff0c 首先需要使用ATC工具将原始模型转换为适合昇腾硬件的模型 xff08 om xff09 xff0c 支持原始框架类型为
  • TypeError: unsupported operand type(s) for *: ‘NoneType‘ and ‘float‘

    TypeError unsupported operand type s for 39 NoneType 39 and 39 float 39 xff0c 如果遇到这种情况说明NoneType和float不允许 的操作 xff0c 检查一下
  • 使用Image.open时,错误提示找不到文件

    Image open img path 这里的img path要是绝对路径 xff08 也就是图片在电脑上的路径 xff09 或者是执行的 py文件图片是在同一个目录下 xff0c 如果图片在另一个目录下 xff0c 编写代码的 py文件在
  • ToTensor() takes no arguments

    在写深度学习网络的时候如果出现如上错误 xff1a ToTensor takes no arguments 我当时的情况是transform 61 torchvision transforms ToTensor 这句代码 由于刚开始ToTe
  • 2022CANN训练营进阶班大作业1调试分享

    题目 xff1a 也就是输入一张JPEG图片 xff0c 经过DVPP解码 43 缩放 43 编码后将结果输出 xff0c 由于gitee代码仓中没有直接可以实现的代码 xff0c 不过提供了jpege xff0c resize xff0c
  • b660和b660m的区别 b660和b660m差多少

    1 xff1a B660M K D4 CPU供电部分有散热片 xff0c 有利于高负载供电的稳定性 2 xff1a B660M K D4具有2个M 2硬盘插槽 xff0c 而B660M P D4是1个M 2硬盘插槽 3 xff1a B660
  • OpenCV4遇到的报错及解决办法

    刚开始学习OpenCV4 xff0c 遇到一些错 xff0c 网上搜索错误原因和解决办法 xff0c 做个记录吧 报错 xff1a CV LOAD IMAGE COLOR 解决办法 xff1a 加入头文件 include opencv2 i
  • nginx的配置和详解

    nginx简介 nginx xff08 发音同engine x xff09 是一款轻量级的Web服务器 反向代理服务器及电子邮件 xff08 IMAP POP3 xff09 代理服务器 xff0c 并在一个BSD like协议下发行 ngi
  • The following packages have unmet dependencies问题解决

    当出现这些问题时一直追加安装即可
  • Python下载网易云音乐(云音乐飙升榜)

    最近突然想用python写一个自动下载的工具 xff0c 于是就先拿网易云来练练手 xff0c 并把过程中的心得写下来便于后面有想玩这个的童鞋们参考 首先我们分析网页源码 xff0c 找到我们想要的获取数据位置 xff1a 每一个标签对应着
  • ubuntu20.04 桌面图标显示异常及解决方法

    前言 更新至ubuntu20 04后 xff0c 出现了一些以前没有的问题 桌面上有些图标不显示 文章目录 前言一 具体表现二 原因三 解决方法总结 一 具体表现 例如有一次我在做备忘录时 我习惯地打开终端 span class token
  • Java类名的命名规则

    1 类名必须使用有意义的名字 xff1b 2 类名的每个单词的首字母必须大写 帕斯卡命名法 xff1b 3 类名不能使用数字 除了 和 之外的任何符号 xff0c 中间不能添加空格 xff0c 不能使用java关键字 xff1b 如 xff
  • firewalld高级配置

    1 IP地址伪装 masquerade xff1a 伪装 通过地址伪装 xff0c NAT设备将经过设备的包转发到指定接收方 xff0c 同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地 当是返回数据包是 xff0c 会将
  • Java中关于JSON格式数据的操作

    对于java格式数据的处理 xff1a 1 xff1a 先创建java实体类 xff0c 例如 xff1a public class Brand private String id private String brandName publ
  • 线程常用调度方法

    目录 一 线程等待 二 线程通知 三 线程休眠 四 请求让出CPU执行权 五 线程中断 一 线程等待 1 wait xff08 xff09 xff1a 当一个线程调用了wait xff08 xff09 方法后 xff0c 这个线程会被阻塞挂
  • centos7 安装jdk详细教程

    一 前言 本文主要介绍的是Centos7 Linux环境下安装jdk 8u333的详细图文教程 xff0c 用过linux服务器的开发人员都知道 xff0c JDK是作为日常开发常用的基础环境 xff0c 所以安装jdk是必要的 xff0c
  • KDE 美化(Manjaro)-记录

    KDE 美化 Manjaro 要想在不同的工具包之间获得相似的外观 xff0c 你很可能需要修改以下内容 xff1a 主题 包含一套风格 图标主题和颜色主题 风格 图形布置 xff0c 观感 图标主题 一套整体的图标 颜色主题 一套连接风格
  • spring容器对Bean组件的管理

    spring容器对Bean组件的管理 1 Bean对象创建时机 默认是随着容器创建 xff0c 可以使用lazy init 61 true xff08 在调用getBean创建 xff09 延迟创建 xff0c 也可以使用 lt beans