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中的配置

java 复制代码
<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。

相关推荐
一路向北North22 分钟前
Spring AI(6) :对话机器人-会话历史
java·人工智能·spring
Dovis(誓平步青云)1 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
RuoyiOffice1 小时前
超级个体接私活必看:后端+前端+移动端三端一体企业管理系统怎么选(2026)
java·spring boot·vue·uniapp·全栈·企业管理·接私活
IT_陈寒1 小时前
Python的线程池把我CPU跑满了,原来少传了个参数
前端·人工智能·后端
java1234_小锋1 小时前
【免费】基于Spark实时电商用户行为分析与预测(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 锋哥原创出品,必属精品
java·spark·kafka·实时电商用户行为分析与预测系统
keyipatience2 小时前
日志和线程池
java·开发语言
wuqingshun3141592 小时前
springBoot是如何通过main方法启动web项目的?
前端·spring boot·后端
码农学院2 小时前
Spring Boot RocketMQ构建电商零售高并发订单处理系统
spring boot·rocketmq·java-rocketmq
程序员爱钓鱼2 小时前
Rust Option 详解:安全处理“可能存在,也可能不存在”的值
前端·后端·rust
程序员爱钓鱼2 小时前
Go Modules 包管理详解:go.mod、go.sum 与依赖管理
前端·后端·go