2015-01-14 30 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

回答

相關問題