java中的类的数据结构信息存储在每个对应的Class对象中,而spring将扫描或解析xml的bean信息存储在BeanDefinition,每个bean对应一个BeanDefinition。BeanDefinition里面记录了每个bean的基本信息包括是否单例、作用域、是否抽象(spring允许普通类被定义成抽象类型)、是否懒加载等。
继承结构图如下:
spring中注册BeanDefinition的方式:
1.@Component(@Service,@Controller...)
2.@Bean
3.@Configuration
4.FactoryBean
5.BeanFactoryPostProcessor(可以修改容器中已经注册好的beanDefinition)
6.BeanDefinitionRegistryProcessor(添加修改BeanDefinition)
7.importBeanDefinitionRegistry,配置@Import使用
8.ImportSelector
spring--BeanDefinition
最新推荐文章于 2023-10-16 18:18:21 发布