Spring Bean的种类和作用域
一、种类
-
普通Bean
//spring直接创建A实例,并返回。 xml声明: <bean id="" class="A"> 注解声明: @Bean
-
FactoryBean
首先它是一个Bean,但又不仅仅是一个Bean。它是一个能生产或修饰对象生成的工厂Bean,类似于设计模式中的工厂模式和装饰器模式。它能在需要的时候生产一个对象,且不仅仅限于它自身,它能返回任何Bean的实例。
-
BeanFactory
BeanFactory
是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()
、containsBean()
等管理Bean的通用方法。Spring的容器都是它的具体实现如:- DefaultListableBeanFactory
- XmlBeanFactory
- ApplicationContext
这些实现类又从不同的维度分别有不同的扩展。
-
FactoryBean 和 BeanFactory 区别:
BeanFactory:是一个工厂(其实是构建了一个spring上下文的环境,容器),用来管理和获取很多Bean对象,例如:加载applicationContext.xml文件。
FactoryBean:是一个Bean生成工具,是用来获取一种类型对象的Bean,它是构造Bean实例的一种方式。
二、作用域
- singleton 单例,默认值。
说明:在Spring IoC容器中仅存在一个Bean实例, Bean以单例方式存在,在容器启动时创建
- prototype 多例
说明:每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean(), 在调用时创建
-
request
说明:每次HTTP请求都会创建一个新的Bean, 该作用域仅适用于WebApplicationContext环境
-
session
说明:同一个HTTP Session 共享一个Bean, 不用Session 使用不同的Bean, 该作用域仅适用于WebApplicationContext环境
感谢阅读本博客。
欢迎关注我的博客:https://li-weijian.github.io/
欢迎关注我的CSDN:https://blog.csdn.net/qq352642663
需要联系请加QQ:352642663
欢迎联系我共同交流
上一篇: 匈牙利算法(二分图算法