2017-12-03 134 views
0

是否可以使用Spring Context確定哪些類需要注入我的bean?我爲我的bean使用僅Java配置。將特定實例注入特定類

比方說,我有這個bean:

@Bean 
@Scope("prototype") 
public Helper helper() { 
    return new Helper(); 
} 

現在我想知道在哪個班級這種情況下會在注射注入意味着這個類特殊的實例。

我想要做這樣的事情,例如僞代碼:

@Bean 
@Scope("prototype") 
public Helper helper(Class injectInto) { 
    if (injectInto == SomeClass.class) { 
     return new Helper("Only for SomeClass!"); 
    } 
    return new Helper(); 
} 

豆應注射一如既往,例如:

@Autowired 
private Helper helper; 

回答

0

使用@Qualifier和@Bean(名=「」)註釋爲此目的。有很多關於如何使用它的在線資源。

@Bean(name="normal") 
@Scope("prototype") 
public Helper helper(Class injectInto) { 
    return new Helper(); 
} 

@Bean(name="special") 
@Scope("prototype") 
public Helper helper(Class injectInto) { 
    return new Helper("Only for SomeClass!"); 
} 

自動裝配在SomeClass的:

@Autowired 
@Qualifier(value = "special") 
private Helper helper;