3
我想将一个原型scoped bean注入到一个单例中。这个原型bean应该只为其注入的每个单例创建一次(根据我的理解,默认情况下是这种情况)。然而,我每次都需要一个稍微不同的bean,所以我希望能够使用构建原型bean时使用的自定义注释来注释注入点。不同参数的Spring原型bean
问题是,我该如何找出注射点上的注释?
下面是一些代码,看看我想达到的目标:
@Component
public class X {
@Inject
@CustomAnnotation("Hi")
private PrototypeBean bean;
}
凡PrototypeBean通过一个bean的方法提供:
@Bean
public PrototypeBean prototypeBean(CustomAnnotation customAnnotation) {
return new PrototypeBean(customAnnotation);
}
的想法是在这里,随处可见这个PrototypeBean注入,一基于CustomAnnotation的值,创建新实例的行为稍有不同。
我知道你可以使用ApplicationContext来做到这一点(当然,传递额外的参数,而不是注释),但我想用简单的注释来保持它的轻量级。
这听起来像你真的想要一个工厂。 – chrylis
@Bean带注释的方法是新工厂的一种,但我不介意以不同的方式做它,只要类X可以写成接近该示例的东西 – john16384