美文网首页
spring Bean介绍

spring Bean介绍

作者: 不存在的里皮 | 来源:发表于2019-05-23 00:14 被阅读0次

前言

偶然看到BeanDefinition类后,我思索spring解析<bean>标签后生成了什么类的对象?它是怎么做到钩子函数的,是回调函数,还是用了动态代理机制?BeanDefinition和@Bean有什么关系吗?

什么是Bean

Bean 定义

  • Bean的定义。bean 定义包含称为配置元数据的信息,下述容器也需要知道配置元数据:
    • 如何创建一个 bean
    • bean 的生命周期的详细信息
    • bean 的依赖关系
  • Spring 配置元数据的三种方法:
    1. 基于 XML 的配置文件。
    2. 基于注解的配置
    3. 基于 Java 的配置

Bean的生命周期

JAVA面试题:Spring中bean的生命周期

  1. 实例化
  2. 设置属性。Setter注入。
  3. 各种Aware接口调用
  4. BeanPostProcessor.postProcessBeforeInitialization
  5. InitializingBean.afterProPertiesSet
  6. init-method(如果有设置)
  7. BeanPostProcessor.postProcessAfterInitialization

然后Bean可以正常使用。


容器关闭时

  1. DisposableBean.destroy
  2. destroy-method(如果有配置)

Spring循环依赖检查

Spring循环依赖检查

内部Bean级联 inter-bean-dependencies

  • @Configuration内,spring会自动处理Bean级联问题。
  • @Component等其它注解内,spring只会把Bean方法当做普通工厂方法对待
    查阅springBean内部级联来进一步了解这一点。

单例Bean与原型Bean的相互引用

...

相关文章

网友评论

      本文标题:spring Bean介绍

      本文链接:https://www.haomeiwen.com/subject/xoojzqtx.html