我有一些带有自定义注解的类,这些类不应该被实例化(抽象类,只是真正bean的子组件)。但在这些类的基础上,在运行时,在上下文初始化阶段,我想向应用程序上下文中添加额外的bean。
因此,基本上我需要扫描类路径,处理结果,并将新的bean引入当前应用程序上下文。
似乎spring-mvc、spring-tasks和spring-integration都在做这个(我试图从源代码学习,但没有成功)
我发现我可以创建自己的BeanFactoryPostProcessor
,扫描类路径并调用registerSingleton
来注册我的自定义bean。但我不确定这是否是引入新bean的好方法(似乎仅用于现有bean的后处理)。我相信还有一些Spring内部工具可以重用以简化流程。
介绍额外的bean到Spring上下文初始化的常规方法是什么?