接上一章
自定义过滤规则
类MyTypeFilter
获取当前注解的信息
如果注解id包含“er”,就包括进来
在MainConfig添加自定义的过滤规则
运行:
对于person,已经配置好了
我们可以看到我们并没有增加什么注解,但是他也被扫描进去了
包结构
创建配置类
创建测试类IOCTest:
运行:
注意在bean中的对象都是单例模式
我们可以测试一下看这两个对象是否相等
运行结果
那我们能不能改变它的单例模式呢
回到测试类,添加注解
进入到scope源码当中
对于我们来说只需要关注前面两个配置就行了,一个多例和一个单例
在运行一次
我们可以看到不一样了
其实也就相当于在bean上面配置scope
那bean的调用时机是什么时候呢?
添加打印信息
现在我们注解掉所有的代码,留下一个空盒
运行:
总结:单实例的(默认值):ioc容器启动会调用方法创建对象放在ioc容器中。以后每次获取就是直接从容器中获取(底层也就相当于map.get()方式)。
现在我们把它换成多实例模式
运行:发现控制台什么都没有打印!!!
修改测试类
运行:
创建两个:
运行:
总结:
prototype:ioc容器启动并不会去调用方法创建对象在容器中。每次获取的时候才会调用方法创建对象;