2
@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的configs的,只能用注解?
正确的代码应该是
@Configuration
public class AppConfig {
@Bean
public MyAdapter adaptedCache2() {
return new MyAdapter (cache1);
}
@Bean
public MyAdapter adaptedCache2() {
return new MyAdapter (cache2);
}}
根据specs将产生两个bean adaptedCache1和adaptedCache2 和现在我可以 自动装配与限定符adaptedCache1和adaptedCache2
作为案例了解我在上文中MyDecorator必须扩展缓存,我不知道这是否是好主意 – Diyko 2012-04-05 12:20:15
@Diyko:这不就是如何*装饰*模式的作品?它扩展/实现与包装对象相同的接口?否则,它是一个*适配器* ... – 2012-04-05 12:22:33
看来我已经得到了你的意思 – Diyko 2012-04-05 12:32:44