【发布时间】:2018-10-11 13:25:14
【问题描述】:
假设我有一个 Storage bean,它封装了与存储我的实体相关的逻辑。
public interface Storage {
Object get(String id);
String save(Object obj);
}
我有 3 个实现:
public FileStorage implements Storage { ... } // needs FileService
public RedisStorage implements Storage { ... } // needs JedisPool, RedisService and RedisSerializer
public MixedStorage implements Storage { ... } // combines other Storages
我还有两个属性:
redis.enabled
file.enabled
根据这些属性,我必须使用MixedStorage 创建一个bean,或者同时创建两个bean(或没有,但这不在问题范围内)。
我创建了一个 StorageFactory factory-bean:
public class StorageFactory {
// decide which impl to create basing on properties
}
现在我正在传递所有实现所需的所有依赖资源(RedisSerializer、JedisPool、RedisService、FileService)。这些资源的数量可以增长得更快,同时添加新的实现。
有什么办法不把所有的依赖都传过去,以后再初始化?
我正在使用 XML
【问题讨论】:
标签: java spring spring-ioc