Spring Beans知识点小结

Spring Beans知识点小结
1.什么是Spring beans
Spring beans 是Spring框架在运行时管理的对象。它们被Spring IOC 容器初始化,装配和管理。这些beans 通过容器中配置的元数据创建。比如以xml文件中的<bean>的形式定义。
Spring框架定义的beans都是单例beans。在bean tag中有个属性“singleton”,如果它被赋值为TRUE,bean就是单例,否则就是一个prototype bean。默认是true,所以所有在Spring框架中的beans默认都是单例。

2.一个Spring Bean定义包含什么
一个Spring Bean的定义包含容器所必知的所有配置元数据,包括如何创建一个bean,它的生命周期详情以及它的依赖。

3.如何给Spring容器提供配置元数据
基于配置文件
基于注解的配置
基于java的配置

4.你怎样定义类的作用域
当定义一个<bean>,在Spring里,我们还可以给bean指定一个作用域.它可以通过bean定义中的scope属性来定义。如当Spring需要的时候每次生产一个新的bean实例,bean的scope属性被指定为prototype。另一方面,一个bean每次使用的时候必须返回同一个实例,这个bean的scope属性,必须设置为singleton。

5.Spring框架支持以下5种bean的作用域:
singleton: bean在每个Spring ioc容器中只有一个实例
prototype: 一个bean的定义可以有多个实例
request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext的情形下有效
session: 在一个http session中,一个bean定义对应一个实例,该作用域仅在基于web的Spring ApplicationContext情形下有效
global-session:在一个全局的http session中,一个bean定义对应一个实例,该作用域仅在基于web的Spring Application Context情形下有效

6.Spring框架中的单例bean是线程安全的吗
不,Spring 框架中的单例 bean 不是线程安全的。

7.解释Spring框架中bean的生命周期
Spring容器从xml文件中读取bean的定义,并实例化bean;
Spring根据bean的定义填充所有的属性;
如果bean实现了BeanNameAware接口,Spring传递bean的id到setBeanName方法。
如果bean实现了BeanFactoryAware接口,Spring传递beanfactory给setBeanFactory方法。
如果有任何跟bean相关联的BeanPostProcessors,Spring会在postProcesserBeforeInitialization()方法内调用他们。
如果bean实现了InitializingBean了,调用它的afterPropertySet方法,如果bean声明了初始化方法,调用此初始化方法。
如果有BeanPostProcessors和bean关联,这些bean的postProcessAfterInitialization()方法将会被调用。
如果bean实现了DiposableBean,它将调用destroy()方法。

8.什么是Spring的内部bean
当一个 bean 仅被用作另一个 bean 的属性时,它能被声明为一个内部 bean,为了定义 inner bean,在 Spring 的 基于 XML 的 配置元数据中,可以在 <property>或 <constructor-arg> 元素内使用<bean> 元素,内部 bean 通常是匿名的,它们的 Scope 一般是 prototype。

9.什么是bean装配
装配,或 bean 装配是指在 Spring 容器中把 bean 组装到一起,前提是容器需要知道 bean的依赖关系,如何通过依赖注入来把它们装配到一起。

10.什么是bean的自动装配
Spring 容器能够自动装配相互合作的 bean,这意味着容器不需要<constructor-arg>和
<property>配置,能通过 Bean 工厂自动处理 bean 之间的协作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值