Spring中的BeanFactory对象实例化工厂详解

 更新时间:2023年12月01日 10:13:14   作者:军伟@  
这篇文章主要介绍了Spring中的BeanFactory对象实例化工厂详解,BeanFactory及其子类是Spring IOC容器中最重要的一个类,BeanFactory由类名可以看出其是一个Bean工厂类,其实它确实是一个Bean工厂类,完成Bean的初始化操作,需要的朋友可以参考下

BeanFactory对象实例化工厂

BeanFactory及其子类是Spring IOC容器中最重要的一个类,BeanFactory由类名可以看出其是一个Bean工厂类,其实它确实是一个Bean工厂类,完成Bean的初始化操作。

Bean的初始化操作还是一个比较麻烦的操作,首先根据spring注入配置将bean初始化为单例或者原型,其次需要根据Bean的属性配置来完成Bean参数的注入配置,还有要解决单例模式下Bean的循环依赖的问题,原型模式下bean的循环依赖会直接报错。

BeanFactory接口及其实现类:

BeanFactory接口继承关系:

BeanFactory 是Spring bean容器的根接口.提供获取bean,是否包含bean,是否单例与原型,获取bean类型,bean 别名的api.

  •  AutowireCapableBeanFactory 添加集成其他框架功能.如果集成WebWork则可以使用Spring对Actions等进行管理.
  •  HierarchicalBeanFactory 提供父容器的访问功能
  • ConfigurableBeanFactory 如名,提供factory的配置功能,眼花缭乱好多api
  •  ConfigurableListableBeanFactory 集大成者,提供解析,修改bean定义,并与初始化单例.
  •  ListableBeanFactory 提供容器内bean实例的枚举功能.这边不会考虑父容器内的实例.

BeanFactory提供的接口如下:

public interface BeanFactory {
	String FACTORY_BEAN_PREFIX = "&";
	//根据名称获取bean
	Object getBean(String name) throws BeansException;
	//根据名称及类型获取类
	<T> T getBean(String name, Class<T> requiredType) throws BeansException;
	//根据类型获取类
	<T> T getBean(Class<T> requiredType) throws BeansException;
	Object getBean(String name, Object... args) throws BeansException;
	<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
	boolean containsBean(String name);
	//单例判断
	boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
	//原型判断
	boolean isPrototype(String name) throws NoSuchBeanDefinitionException;
	//类型判断
	boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;
	boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;
	Class<?> getType(String name) throws NoSuchBeanDefinitionException;
	String[] getAliases(String name);
}

总结:接下来我们通过几篇博客来介绍BeanFactory所提供的Bean实例化操作。

到此这篇关于Spring中的BeanFactory对象实例化工厂详解的文章就介绍到这了,更多相关BeanFactory对象实例化工厂内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现LRU缓存算法的参考示例

    Java实现LRU缓存算法的参考示例

    这篇文章主要介绍了JAVA实现LRU缓存算法的参考示例,帮助大家根据需求实现算法,对大家的学习或工作有一定的参考价值,需要的朋友可以参考下
    2023-05-05
  • SpringBoot中的异步执行方法详解

    SpringBoot中的异步执行方法详解

    这篇文章主要介绍了SpringBoot中的异步执行方法详解,ThreadpoolTaskExecutor不需要手动的创建当前线程池,但往往我们还是会手动指定,具体原因看源码就可以自有判断,需要的朋友可以参考下
    2023-10-10
  • 关于@Controller和@Restcontroller的那点奇葩事

    关于@Controller和@Restcontroller的那点奇葩事

    这篇文章主要介绍了关于@Controller和@Restcontroller的那点奇葩事,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 详解Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    详解Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    本篇文章主要介绍了Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java IO文件编码转换实现代码

    Java IO文件编码转换实现代码

    这篇文章主要介绍了Java IO文件编码转换实现代码,有需要的朋友可以参考一下
    2013-12-12
  • SpringBoot如何使用MyBatis-Plus实现高效的数据访问层

    SpringBoot如何使用MyBatis-Plus实现高效的数据访问层

    在开发 Spring Boot 应用时,数据访问是不可或缺的部分,本文将详细介绍如何在 Spring Boot 中使用 MyBatis-Plus,并结合具体代码示例来讲解它的使用方法和常见配置,希望对大家有一定的帮助
    2025-04-04
  • SpringMVC结构简介及常用注解汇总

    SpringMVC结构简介及常用注解汇总

    这篇文章主要介绍了SpringMVC结构简介及常用注解汇总,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下
    2021-03-03
  • Java接口的作用以及使用说明

    Java接口的作用以及使用说明

    接口是一种规范,定义了一组方法的原型,但没有实现,类通过实现接口来实现接口中的抽象方法,接口可以提供规范性、扩展性和可插入性,在Java中,接口可以用来声明一个变量,实现接口的类必须实现接口中定义的所有方法,接口提供了一种机制
    2024-11-11
  • Spring的编程式事务TransactionTemplate的用法详解

    Spring的编程式事务TransactionTemplate的用法详解

    TransactionTemplate提供了一种在代码中进行编程式事务管理的方式,使开发人员能够在方法级别定义事务的开始和结束点,本文介绍了Spring框架中TransactionTemplate的用法,感兴趣的朋友跟随小编一起看看吧
    2023-07-07
  • Java API方式调用Kafka各种协议的方法

    Java API方式调用Kafka各种协议的方法

    本篇文章主要介绍了Java API方式调用Kafka各种协议的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论