springboot自学(1)bean的加载方式
第一个加载方式:
Xml:
声明和加载自定义的bean
声明第三方的bean
遍历bean名称(id)
如果不自定义id的话,会自动命名一个
Xml+注解:
对xml文件进行修改
配置第三方的bean
纯注解:
FactoryBean
为什么会有这个需求呢,原因就是在return之前,可以做一些前置列化的初始工作。比如reids对象的创建,可以在这里判断redis是否启动,环境检测等。
如果原先是XML开发后来转成了纯注解开发,怎么兼容?
ProxyBeanMethod:
也就是说这个bean是代理对象
修改成false,结果就不一样了,bean就不是代理对象了。
那么这个起到了什么作用呢
也就是说ProxyBeanMethod为true的时候,spring容器中加载过的bean,再调用创建bean的方法,只会去容器中拿那个bean,而不是再创建一个。False相反。
Import:
这个方法可以有效的解耦,不用在类上面写加载bean的注解,可以做到无入侵编程,以后不用spring也可以使用这个代码。而且创建bean也比前面省事,少写一些代码。
手工加载bean
多个手工注册,是后面的覆盖前面的
第六种加载方式
可以写多个
为什么要这样写,不仅可以加载bean,还可以控制bean。动态加载bean,此方法源码中大量使用。
第七种加载方式
第八个加载方式:
MyRegistrar的优先级更高,会覆盖前面的bean
再定义一个
相同的就是配置顺序的关系了,后面覆盖前面