当前位置: 首页 > article >正文

Spring Boot【三】

自动注入

xml中可以在bean元素中通过autowire属性来设置自动注入的方式:
<bean id="" class="" autowire="byType|byName|constructor|default" />
byName:按照名称进行注入
byType:按类型进行注入
constructor:按照构造方法进行注入
default:默认注入方式

bean初始化的方式

1.实时初始化

2.延迟初始化
在bean定义的时候通过lazy-init属性来配置bean是否是延迟加载,true:延迟初始化,false:实时初始化

使用继承简化bean配置

bean元素的abstract属性为true的时候可以定义某个bean为一个抽象的bean,相当于定义了一个bean模板,spring容器并不会创建这个bean,从容器中查找abstract为true的bean的时候,会报错BeanIsAbstractException异常.


bean元素的parent属性可以指定当前bean的父bean,子bean可以继承父bean中配置信息,也可以自定义配置信息,这样可以覆盖父bean中的配置

<bean id="serviceA" class="com.javacode2018.lesson001.demo12.ServiceA"/>
 
    <bean id="baseService" abstract="true">
        <property name="name" value="Java"/>
        <property name="serviceA" ref="serviceA"/>
    </bean>
 
    <bean id="serviceB" class="com.javacode2018.lesson001.demo12.ServiceB" parent="baseService"/>
 
    <bean id="serviceC" class="com.javacode2018.lesson001.demo12.ServiceC" parent="baseService"/>

bean的创建和销毁顺序

bean对象的创建顺序和bean依赖的顺序一致
bean销毁的顺序和bean创建的顺序相反
在这里插入图片描述

  • 总结:
  • 1、无依赖的bean创建顺序和定义的顺序一致,销毁顺序刚好相反。
  • 2、通过构造器强依赖的bean,会先创建构造器参数中对应的bean,然后才会创建当前bean,销毁顺序刚好相反。
  • 3、depend-on可以指定当前bean依赖的bean,通过这个可以确保depend-on指定的bean在当前bean创建之前先创建好,销毁顺序刚好相反
  • 4、bean的销毁顺序和bean创建的顺序相反

primary与autowire-candidate设置首选者

当从容器中查找一个bean的时候,如果容器中出现多个Bean候选者时,可以通过primary="true"将当前bean置为首选者,那么查找的时候就会返回主要的候选者,否则将抛出异常。
autowire-candidate:设置当前bean在被其他对象作为自动注入对象的时候,是否作为候选bean,默认值是true。


http://www.kler.cn/a/417628.html

相关文章:

  • TCP连接管理与UDP协议IP协议与ethernet协议
  • 【Day31 LeetCode】动态规划DP Ⅳ
  • 游戏引擎学习第88天
  • 数据结构实战之线性表(三)
  • 更换IP属地会影响网络连接速度吗
  • 基于“蘑菇书”的强化学习知识点(五):条件期望
  • Java的类和对象
  • SMOTE | 使用SMOTE算法来处理不平衡数据的问题
  • 【Linux】【字符设备驱动】深入解析
  • LabVIEW实现UDP通信
  • Android获取状态栏、导航栏的高度
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue文化创意展示与交流平台【提供源码+答辩PPT+文档+项目部署】
  • YOLO系列论文综述(从YOLOv1到YOLOv11)【第14篇:YOLOv11——在速度和准确性方面具有无与伦比的性能】
  • 动捕 动作捕捉学习笔记
  • C++内存对齐
  • 【从零开始的LeetCode-算法】263. 丑数
  • python全栈开发《67.不同数据类型间的转换:列表集合元组的转换》
  • 【Leecode】Leecode刷题之路第66天之加一
  • Maven CMD命令
  • 共享售卖机语音芯片方案选型:WTN6020引领智能化交互新风尚
  • 【Ant Design Pro】1. config 配置
  • 实战ansible-playbook:Ansible Vault加密敏感数据(三)
  • 田忌赛马五局三胜问题matlab代码
  • 大模型训练核心技术RLHF
  • 关于扩散方程的解
  • 命令行应用开发初学者指南:脚手架篇、UI 库和交互工具