spring skills - hanyong/note GitHub Wiki
Spring 开发技巧
预先注入 bean 到 spring 容器
场景:将外部管理 bean(手动管理或在已有容器中)注入新容器中。
- 创建 BeanDefinitionRegistryPostProcessor
- 容器中的 bean 初始化前被调用
- 参数 BeanDefinitionRegistry 强转为 DefaultSingletonBeanRegistry
- 调用
registerSingleton()
方法 - 注入 bean 的生命周期不被 spring 托管
运行时实例化原型 bean
参考:
- https://stackoverflow.com/questions/27809838/how-to-instantiate-spring-managed-beans-at-runtime
- Passing lookup-method arguments to created bean constructor: https://jira.spring.io/browse/SPR-7431
场景:
- 运行时创建原型 bean 的新实例。
- 运行时创建 bean 。先将要创建的 bean 类型在 spring 中定义原型 bean 。
方法:
- 使用
@Lookup
注解关联原型 bean. - 可传递创建 bean 实例的参数.