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

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.lryc.cn/news/493187.html

相关文章:

  • R 因子
  • 【博主推荐】C# Winform 拼图小游戏源码详解(附源码)
  • 深入解析 MySQL 启动方式:`systemctl` 与 `mysqld` 的对比与应用
  • 【python】windows pip 安装 module 提示 Microsoft Visual C++ 14.0 is required 处理方法
  • python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)
  • go sync.WaitGroup
  • Libevent库-http通信不同请求方式的处理
  • 关于node全栈项目打包发布linux项目问题总集
  • 常见的上、下采样方法
  • 如何解决 java.rmi.NotBoundException: RMI 中没有绑定的对象问题?亲测有效的解决方法!
  • 设计模式:14、抽象工厂模式(配套)
  • Linux环境基础开发工具使用
  • AI生成的一个.netcore 经典后端架构
  • 深度学习-48-AI应用实战之基于face_recognition的人脸识别
  • 【Rabbitmq篇】高级特性----事务,消息分发
  • Python进程和线程适用场景
  • flutter开发环境—Windows
  • 展示和添加篮球队信息--laravel与elementplus
  • 写一份客服网络安全意识培训PPT
  • 具体的技术和工具在县级融媒体建设3.0中有哪些应用?
  • 【uniapp】轮播图
  • Rust编程语言代码详细运行、编译方法
  • node.js基础学习-http模块-JSONP跨域传值(四)
  • Unity高效编程经验50条分享
  • TypeScript 泛型
  • 【Java从入门到放弃 之 条件判断与循环】
  • Ubuntu20.04安装kalibr
  • Flink 任务启动脚本-V2(包括ck启动)
  • 扫雷-完整源码(C语言实现)
  • python -从文件夹批量提取pdf文章的第n页,并存储起来