2015-01-14 31 views
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来做到这一点(当然,传递额外的参数,而不是注释),但我想用简单的注释来保持它的轻量级。

+1

这听起来像你真的想要一个工厂。 – chrylis

+0

@Bean带注释的方法是新工厂的一种,但我不介意以不同的方式做它,只要类X可以写成接近该示例的东西 – john16384

回答

相关问题