wordpress关闭网站,做做网站2023,wordpress注入点,中建一共几个局Spring版本5.1.x
Spring中的BeanDefinition是一个接口#xff0c;用于描述Spring容器中Bean的元数据。BeanDefinition描述了Bean的各种属性#xff0c;如名称、依赖关系、初始化方法等。这个接口通常用于在Spring的IoC容器中注册Bean#xff0c;并且当容器需要创建Bean实例…Spring版本5.1.x
Spring中的BeanDefinition是一个接口用于描述Spring容器中Bean的元数据。BeanDefinition描述了Bean的各种属性如名称、依赖关系、初始化方法等。这个接口通常用于在Spring的IoC容器中注册Bean并且当容器需要创建Bean实例时会使用这些BeanDefinition来获取Bean的属性和依赖关系。
BeanDefinition的主要作用是
描述Bean的属性和依赖关系BeanDefinition可以定义一个Bean的属性和依赖关系Spring容器会根据这些信息来创建Bean实例并且注入相应的依赖。注册Bean到Spring容器中在Spring应用中我们通常会将Bean的定义注册到Spring容器中这样容器就可以管理这些Bean的生命周期。BeanDefinition就是用于描述Bean的元数据从而将Bean注册到Spring容器中。实现依赖注入通过使用BeanDefinitionSpring容器可以自动识别和注入Bean之间的依赖关系。当容器需要创建一个Bean实例时它会根据BeanDefinition中的信息来获取依赖关系并且自动注入相应的Bean实例。
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {/*** see #setScope bean 作用域 单例*/String SCOPE_SINGLETON ConfigurableBeanFactory.SCOPE_SINGLETON;/*** see #setScope bean 作用域 原型*/String SCOPE_PROTOTYPE ConfigurableBeanFactory.SCOPE_PROTOTYPE;int ROLE_APPLICATION 0;int ROLE_SUPPORT 1;int ROLE_INFRASTRUCTURE 2;void setParentName(Nullable String parentName);NullableString getParentName();void setBeanClassName(Nullable String beanClassName);NullableString getBeanClassName();/*** 设置bean作用域*/void setScope(Nullable String scope);NullableString getScope();/*** see Lazy* lazy-init* 是否延迟初始化bean 默认为false 如果设置为true 则直到第一次使用该bean时才会初始化bean* 一般不需要更改改属性值因为如果延迟初始化bean 可能会出现一个循环依赖初始化顺序等问题*/void setLazyInit(boolean lazyInit);boolean isLazyInit();/*** 当前bean的依赖*/void setDependsOn(Nullable String... dependsOn);NullableString[] getDependsOn();/*** 是否将当前bean定义为一个作为自动装配的候选者可以自动注入到其他需要依赖该bean地方默认值为true* 如果为false 也可以显示的获取和注入 比如application.getBean();*/void setAutowireCandidate(boolean autowireCandidate);boolean isAutowireCandidate();/*** 多个类型相同的bean 设置当前为主要的第一选择*/void setPrimary(boolean primary);boolean isPrimary();/*** 设置生成该bean的工厂name*/void setFactoryBeanName(Nullable String factoryBeanName);NullableString getFactoryBeanName();/*** 设置生成该bean的工厂方法*/void setFactoryMethodName(Nullable String factoryMethodName);NullableString getFactoryMethodName();/*** 获取构造方法参数*/ConstructorArgumentValues getConstructorArgumentValues();default boolean hasConstructorArgumentValues() {return !getConstructorArgumentValues().isEmpty();}/*** 获取bean的属性值*/MutablePropertyValues getPropertyValues();default boolean hasPropertyValues() {return !getPropertyValues().isEmpty();}/*** init-method* 设置bean的初始化方法*/void setInitMethodName(Nullable String initMethodName);NullableString getInitMethodName();/*** destroy-method* 设置bean的销毁方法*/void setDestroyMethodName(Nullable String destroyMethodName);NullableString getDestroyMethodName();void setRole(int role);int getRole();/***bean的描述信息*/void setDescription(Nullable String description);NullableString getDescription();/*** 判断bean是否为单例的*/boolean isSingleton();/*** 判断bean 是否为原型的*/boolean isPrototype();/*** 判断bean 是否为抽象的*/boolean isAbstract();NullableString getResourceDescription();/*** 获取原始bean*/NullableBeanDefinition getOriginatingBeanDefinition();}