当前位置: 首页 > news >正文

大连省建设厅网站佳木斯市郊区建设局网站

大连省建设厅网站,佳木斯市郊区建设局网站,wordpress 文章背景,wordpress配置七牛cdn什么是BeanFactory? BeanFactory是SpringIOC的最顶层接口,涵盖了IOC容器最基本的操作。ListableBeanFactory、ConfigurableBeanFactory提供了IOC容器获取所有Bean、配置Bean的额外能力。所有BeanFactory的实现类持有所有Bean的定义BeanDefinition&#…
什么是BeanFactory?

BeanFactory是SpringIOC的最顶层接口,涵盖了IOC容器最基本的操作。ListableBeanFactoryConfigurableBeanFactory提供了IOC容器获取所有Bean、配置Bean的额外能力。所有BeanFactory的实现类持有所有Bean的定义BeanDefinition,用一个唯一的字符串(即Bean的名字)区分。BeanFactory提供单例Bean(singleton scope)与多例Bean的能力(prototype scope),自从Spring2.0后Bean的作用范围不单单局限于单例与多例,还具有提供请求(request)与对话(session)级别的范围。BeanFactory是IOC容器注册Bean的入口,也是Bean配置中心。

Spring官方推荐使用构造器注入或者Setter注入(push模式)而不是依赖Spring查找bean的注入模式(pull模式)下面是Spring原文

/* Note that it is generally better to rely on Dependency Injection* ("push" configuration) to configure application objects through setters* or constructors, rather than use any form of "pull" configuration like a* BeanFactory lookup. Spring's Dependency Injection functionality is* implemented using this BeanFactory interface and its subinterfaces.*/

以上内容来自BeanFactory的代码注释与总结

查看BeanFactory源码

public interface BeanFactory {// 前缀表示,用于解引用FactoryBean,获取FactoryBean本身而不是由其创建的beanString FACTORY_BEAN_PREFIX = "&";// 指定名字getBeanObject getBean(String name) throws BeansException;// 指定名字和类型getBean<T> T getBean(String name, Class<T> requiredType) throws BeansException;// 指定名字getBean,args可以指定bean的构造器或者工厂方法的入参Object getBean(String name, Object... args) throws BeansException;// 指定类型getBean<T> T getBean(Class<T> requiredType) throws BeansException;// 指定类型getBean<T> T getBean(Class<T> requiredType) throws BeansException;// 指定类型获取bean的Provider,用于按需加载、懒加载等场景<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);// 指定类型获取bean的Provider,ResolvableType作为通用类型入参,不支持bean的集合<T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);// 判断是否包含指定名称的bean 	boolean containsBean(String name);// 判断指定名称的bean是否是单例boolean isSingleton(String name) throws NoSuchBeanDefinitionException;// 判断指定名称的bean是否是多例boolean isPrototype(String name) throws NoSuchBeanDefinitionException;// 判断bean的名称与类型是否匹配boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;// 判断bean的名称与类型是否匹配boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;// 获取指定名称bean的类型Class<?> getType(String name) throws NoSuchBeanDefinitionException;// 获取指定名称bean的类型,是否允许其初始化是为了获取FactoryBean生成的类型Class<?> getType(String name, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException;// 获取bean的别名String[] getAliases(String name);
}

看完上述代码后可能会有几个问题:

  • 什么是FactoryBean?

FactoryBean是一个接口,用于定义实现工厂模式的Bean。它允许我们自定义Bean的实例化逻辑,从而对Bean的创建过程进行更多的控制。FactoryBean可以使得我们在Spring容器中使用非标准的Bean对象。

  • getBean(String name)getBean(String name, Class<T> requiredType)的区别?

getBean(String name, Class<T> requiredType)getBean(String name)能力基础上加了类型校验,保证获取的bean是期望的类型。如果类型不一致会抛出BeanNotOfRequiredTypeException

BeanFactory首先提供了多个getBean的方法,这也是IOC容器对外的核心能力。其次对Bean的作用范围(单例or多例)、Bean的类型、Bean的懒加载等提供了能力。

BeanFactory
获取Bean示例
获取Bean的provider
Bean作用范围
获取Bean的类型
Bean的名称管理
http://www.yayakq.cn/news/730695/

相关文章:

  • 如何免费建立官方网站品牌创意网站建设徕卡e
  • 常州网站排名优化网页版微信文件保存在哪里
  • 网站广告淘宝电商平台网站
  • 网站一般用什么做的网站模板分类
  • 公司网站非响应式模板seo网站优化价格
  • 网站遭到攻击 运维怎么做互联网网站界面设计 要素
  • 连云港网站建设网站江苏网站建设seo优化
  • 郑州网站设计 公司网站建设金手指
  • 在线视频网站建设wordpress 模板丢失.
  • html5手机微网站全网营销培训
  • 网站被黑企业管理系统排名
  • 河南省住房建设厅网站首页什么值得买网站模版
  • 许昌市网站建设科技支付集成文件放在网站哪里
  • 唐山网站建设怎么样wordpress the7 使用
  • 用什么软件做网站最简单做化工类网站内容
  • 做门户网站用什么系统农特产品网站建设合同模板
  • 建设部造价工程师网站网站开发用户分析
  • 大型电子商务网站开发架构能免费做网站吗
  • 龙岗做手机网站北京网站制作南昌
  • 小型网站有哪些广告图文制作图片
  • 与有权重网站做友链济南企业网站设计公司
  • 网站建设 空间有什么免费ppt模板网站
  • 台州网站排名网站开发兼职成都
  • 营销型网站制作的目的是怎样建设一个自己的网站微商
  • 网站前台模板下载免费的微信小程序
  • 如何用域名访问网站网页翻译不见了
  • 个人信息网站wordpress固定链接设置后404
  • 网站怎么做app吗动易做网站
  • 古交网站建设大型网站建设公司沈阳
  • 怎么看一个网站是用什么程序做的新手小白怎样运营1688店铺