好吧,我想我正在努力实现更多,但我想为我的应用程序中的所有字典值创建一个聚合器类。因此,我创建了一个枚举,它将有两个参数-第一个是字典名,第二个是 Supplier
. 我去了 Supplier
因为为每个字典提供的值的计算方式不同。到目前为止我想到了这个:
public enum DictionaryAggregator {
STATUS_X("statusX", StatusX::getDictionary),
STATUS_Y("statusY", new Supplier<Map<String, ?>>() {
@Override
public Map<String, ?> get() {
return <would like to reference to statusYCache which is inside DictionaryAggregatorServiceInjector>;
}
});
private final String dictionaryName;
private final Supplier<Map<String, ?>> dictionary;
public String getDictionaryName() {
return dictionaryName;
}
public Supplier<Map<String, ?>> getDictionary() {
return dictionary;
}
DictionaryAggregator(String dictionaryName, Supplier<Map<String, ?>> dictionary) {
this.dictionaryName = dictionaryName;
this.dictionary = dictionary;
}
@Component
static class DictionaryAggregatorServiceInjector {
@Autowired
private StatusYService statusYService;
}
}
但无论我尝试了什么,我都想不出一个办法,我怎么能从中提供价值呢 StatusYCache
服务。理想情况下,我想实现的是 Supplier
为了 STATUS_Y
可以很容易地从 StatusYService
.
1条答案
按热度按时间d6kp6zgx1#
我想我应该多用脑子。我想到了这个:
它似乎起作用了。