Spring的深入浅出--3.自定义TypeFilter指定过滤规则及bean的单例模式和多例模式的设置以及两种模式的调用时机

本文深入探讨Spring框架中Bean的作用域,包括单例和多例模式,以及Bean的初始化时机。通过具体示例,展示了如何自定义过滤规则并解析不同作用域下Bean的生命周期。

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

接上一章

自定义过滤规则

类MyTypeFilter

 获取当前注解的信息

 

如果注解id包含“er”,就包括进来 

 

在MainConfig添加自定义的过滤规则

 

 运行:

对于person,已经配置好了

我们可以看到我们并没有增加什么注解,但是他也被扫描进去了

 

 包结构

 创建配置类

 创建测试类IOCTest:

运行:

 

注意在bean中的对象都是单例模式

 我们可以测试一下看这两个对象是否相等

 运行结果

那我们能不能改变它的单例模式呢

 回到测试类,添加注解

 进入到scope源码当中

对于我们来说只需要关注前面两个配置就行了,一个多例和一个单例 

在运行一次

 

我们可以看到不一样了

 

其实也就相当于在bean上面配置scope 

 那bean的调用时机是什么时候呢?

添加打印信息

现在我们注解掉所有的代码,留下一个空盒

 运行:

总结:单实例的(默认值):ioc容器启动会调用方法创建对象放在ioc容器中。以后每次获取就是直接从容器中获取(底层也就相当于map.get()方式)。

现在我们把它换成多实例模式

 

 运行:发现控制台什么都没有打印!!!

修改测试类

 

运行:

 

创建两个:

 

运行:

 

总结:

prototype:ioc容器启动并不会去调用方法创建对象在容器中。每次获取的时候才会调用方法创建对象;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值