我在尝试从 spring 使用构造函数参数实例化的 bean 中的 spring 应用程序上下文创建 bean 时遇到问题。
我已经实现了ApplicationContextAware
接口,但它在创建实例后填充了上下文(很明显)。
但是,如果您需要从构造函数中获取 bean,并且我说的是在运行时定义的可变数量的对象,那么正确的方法是什么?
我在尝试从 spring 使用构造函数参数实例化的 bean 中的 spring 应用程序上下文创建 bean 时遇到问题。
我已经实现了ApplicationContextAware
接口,但它在创建实例后填充了上下文(很明显)。
但是,如果您需要从构造函数中获取 bean,并且我说的是在运行时定义的可变数量的对象,那么正确的方法是什么?
在 Spring 实例化的 bean 中,不是在 Constructor 中初始化它,而是在专用方法中初始化它,标记为 Spring 的“init-method”。
您的效果与在构造函数中初始化的效果大致相同,但您使用的是正确的 Spring 生命周期。
您可以利用面向方面的编程使构造函数可访问上下文。Spring 对此有特殊支持 - @Configurable(preConstruction = true)。
随意阅读更多关于弹簧参考 - 6.8.1。使用 AspectJ 通过 Spring 依赖注入域对象