【发布时间】:2012-04-05 12:06:55
【问题描述】:
我有:
@Component
class MyDecorator{
private Cache cache;
/*
some wrapped methods like get put remove
*/
}
是否可以在不同的地方用不同的缓存自动连接MyDecorator?
我可以像这样配置 XML:
<bean id="id1" class="MyDecorator ">
<property name="cache" value="Cache1" />
</bean>
<bean id="id2" class="MyDecorator ">
<property name="cache" value="Cache2" />
</bean>
但是有没有更优雅的方式而不添加 xml 配置,只有注释?
正确的代码应该是
@Configuration
public class AppConfig {
@Bean
public MyAdapter adaptedCache2() {
return new MyAdapter (cache1);
}
@Bean
public MyAdapter adaptedCache2() {
return new MyAdapter (cache2);
}}
根据specs会生成两个bean adaptCache1 和adaptedCache2 现在我可以 使用限定符 adaptCache1 和 adaptCache2 自动装配这些 bean
【问题讨论】:
标签: java spring code-injection autowired