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