Spring杂谈二

本文探讨了Spring框架中bean的生命周期回调机制,包括通过实现InitializingBean和DisposableBean接口进行初始化和销毁回调,以及使用init-method和@PostConstruct、@PreDestroy注解的方式。此外,还介绍了depends-on属性用于控制bean的初始化顺序,Lazy-initializedBeans特性以及包扫描的优化策略。同时,提到了@Primary和@Qualifier注解在解决类型冲突中的作用,以及@Profile如何在特定环境下激活bean。最后,讨论了Spring的循环引用处理和bean定义配置文件的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring杂谈二

  • bean回调的生命周期
    当bean初始化的时候调用方法,销毁也调用的方法,回调。
    在这里插入图片描述
  • 三种方法回调:实现接口、xml配置、注解
    在这里插入图片描述
  1. 实现InitializingBean接口,方法初始化之后执行afterPropertiesSet方法。
    在这里插入图片描述
    在这里插入图片描述

2.销毁执行回调方法,实现DisposableBean
在这里插入图片描述
在这里插入图片描述

3.默认执行的方法,在对应bean配置init-method=“init”
在这里插入图片描述
在这里插入图片描述
4.使用注解@PostConstruct和@PreDestroy
在这里插入图片描述

  • depends-on:一个bean不依赖另一个beans,但是里面有方法需要从里面拿,所以必须先初始化另一个bean

  • Lazy-initialized Beans:一开始不会实例化,用的时候才实例化,@Lazy默认为true
    在这里插入图片描述
    在这里插入图片描述

  • 包扫描
    在这里插入图片描述
    在这里插入图片描述
    正则表达式的格式:FilterType.REGEX
    在这里插入图片描述

  • @Primary 解决两个同类型bean的byType时候出错。

  • @Qualifier("")具体的类,解决同类型bean的byType的错误

  • 加入spring-context-indexer,在spring启动的时候会创建包的所以,不会直接扫描包,而扫描索引,提升启动速度
    在这里插入图片描述

Spring的bean定义配置文件
在这里插入图片描述

  • Spring循环引用
    循环引用借助Spring的缓存区,单例新建的实例存在缓存中,原型不存在缓存中,所以不能实现循环引用。

  • @Profile
    一:可以让配置文件在某种地方生效
    在这里插入图片描述

二:可以让配置文件中的某个bean生效
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值