我敢肯定这已经被问过一百次了,但我似乎找不到这个问题,所以请随时向我推荐其他 stackoverflow 答案。
大多数 Spring 用户对需要注入的非单例 bean 的对象做了什么?例如,我有像 Customer 这样的类,我想每次都实例化一个新的类。可以说它是一个实体,我想注入侦听器以在 @PreRemove 或其他地方进行迭代。通常的解决方案是使用@Configurable,但这似乎是一种解决方法,我想知道是否有更规范的方法来处理这些问题。
我唯一能想到的就是在我的 CustomerRepository 类中创建一个工厂 newCustomer 实例方法,该类是一个托管 bean。然后,我没有将侦听器注入 Customer(最自然的地方),而是将它们注入 CustomerRepository 并将它们指定为 Customer ala new Customer(injectedListeners)的显式构造函数参数。
人们倾向于只使用 Configurable 还是有更好的方法来注入非单例实例?还是大多数用户都像上面那样创建工厂方法?实体示例只是一个示例,我还有其他非单例对象,通常是新的但需要注入。
像 Guice 这样的处理方式会有所不同吗?您将如何仅使用 JSR-330 功能来做到这一点?