SpringBoot bean 的注册与扩展
注册 bean
@Configuration
+@Bean
:配置类的 bean@Component
、@Service
、@Repository
、@Controller
:具有语义的 bean@Import
:三种方式,可以批量导入 bean@ImportResource
:导入一个 xml 配置文件中的 beanFactoryBean<T>
+@Component
:工厂 bean 方式实现 bean 的注入@EnableConfigurationProperties
:用于 java 实体类与配置文件绑定,注入这个 java 对象@Conditional
:条件装配,派生了一系列相关注解,满足特定条件才注入 bean
具体详细使用及示例 看这里
扩展 bean
BeanFactoryPostProcessor
接口的BeanFactoryPostProcessor
方法:bean 工厂后置处理器,通过 Beanfactory 扩展BeanDefinition
从而扩展 beanxxxAware
:感知接口,让 bean 获得容器和环境相关的信息,扩展 beanBeanPostProcessor
接口的postProcessBeforeInitialization
和postProcessAfterInitialization
:bean 初始化之前和之后执行@PostConstruct
、@PreDestroy
:bean 初始化和销毁方法InitializingBean
接口afterPropertiesSet
方法、DisposableBean
接口destroy
方法:bean 属性设置之后和销毁方法@Bean
注解的initMethod
属性、@Bean
的destroyMethod
属性:bean 初始化和销毁方法
Spring 启动时,先获取所有的 bean 定义信息放入 容器的 beanFactory
属性中,然后根据 bean 定义信息反射创建 bean,并在不同节点执行对应的方法达到扩展 bean 的目的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2023-02-10 BigDecimal 比较、运算、精度
2023-02-10 日期
2023-02-10 不讲道理
2023-02-10 String 截取、分割、定位