2017-12-03 135 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;