本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

FactoryBean创建SpringBean的类型区分:代理类型和单例类型有什么区别?

网络教程 app 1℃

FactoryBean创建SpringBean的类型区分代理类型和单例类型有什么区别

factorybean创建spring bean的类型区分与实现

在spring中,factorybean可以创建和初始化bean,与直接new实例的bean不同。

区分类型:

使用factorybean创建的bean有两种类型:

代理类型:factorybean本身作为代理,通过反射动态创建和管理bean实例。单例类型:factorybean创建bean实例并将其缓存为单例,直接返回引用。

实现类型区分:

要实现factorybean,可以实现两个接口:

factorybean:针对代理类型bean,其中t是bean的类型。factorybeanaware:针对单例类型bean,使其可以访问创建它们的factorybean。

实现代码示例:

代理类型:

public class myfactorybean implements factorybean<a> { @override public a getobject() throws exception { return new b(); } @override public class<?> getobjecttype() { return a.class; } @override public boolean issingleton() { return false; }}

单例类型:

public class MyFactoryBean implements FactoryBean<A>, FactoryBeanAware { private A instance; @Override public void setFactoryBean(FactoryBean<?> factoryBean) { instance = factoryBean.getObject(); } @Override public A getObject() throws Exception { return instance; } @Override public Class<?> getObjectType() { return A.class; } @Override public boolean isSingleton() { return true; }}

以上就是FactoryBean创建Spring Bean的类型区分:代理类型和单例类型有什么区别?的详细内容,更多请关注范的资源库其它相关文章!

转载请注明:范的资源库 » FactoryBean创建SpringBean的类型区分:代理类型和单例类型有什么区别?

喜欢 (0)