当前位置: 代码迷 >> 综合 >> 定义Spring Bean
  详细解决方案

定义Spring Bean

热度:46   发布时间:2023-09-20 00:09:15.0

?什么是BeanDefinition?

?BeanDefinition

是Spring Framework 中定义Bean 的配置元信息接口,包含:

?Bean 的类名(包含它的包名,即类的全路径;以及它对应的类必须是一个具体的实现类)

?BeanDefinition 元信息

属性(Property)                               说明

Class                                                 Bean 全类名,必须是具体类,不能用抽象类或接口

Name                                                Bean 的名称或者ID,bean的识别符

Scope                                               Bean 的作用域(如:singleton、prototype 等)

Constructor arguments                     Bean 构造器参数(用于依赖注入)第三方api未提供默认的构造器需要指定构造器参数初始化

Properties                                         Bean 属性设置(用于依赖注入)

Autowiring mode                               Bean 自动绑定模式(如:通过名称byName,byType,byConstructor)属性和外面引用自动关联或自动绑定,此方式可配置,这也称为一些容器或bean的配置元信息

Lazy initialization mode                     Bean 延迟初始化模式(延迟和默认非延迟)

Initialization method                          Bean 初始化回调方法名称

Destruction method                           Bean 销毁回调方法名称(与Initialization method成对出现的)

?BeanDefinition 构建 通过xml配置方式多一些,BeanDefinition 并非bean最终状态,可以自定义修改

?通过BeanDefinitionBuilder  rootBeanDefinition()创建出没有父类

                                            addConstructorArgReference()将构造函数的参数用一个bean的方式去引用

?通过AbstractBeanDefinition 以及派生类

?Bean 行为配置元素,如作用域、自动绑定的模式(autowriting),生命周期(初始化或者销毁)回调等

?其他Bean 引用,又可称作合作者(collaborators)或者依赖(dependencies)依赖注入,不仅可以注入bean,还可以注入配置;

?配置设置,比如Bean 属性(Properties),bean正好对应线程池或者数据库连接池,此时bean正好有大小和相关的属性

 

  相关解决方案