我有三个文本文件,它们都包含相同类型的数据,但数据在每个文件中的存储方式不同。
我想要一个界面:
dataBuffer
而不是创建三个实现,我想创建一个实现并使用依赖注入来注入文本文件的路径 和每个文本文件的分析器类:
public interface ItemRepository() {
List<Item> getItems();
}
如何连接所有内容并将ItemRepositoryImpl注入我的控制器?
我知道我可以做到:
public class ItemRepositoryImpl() implements ItemRepository {
Analyser analyser;
String path;
public ItemRepositoryImpl(Analyser analyser, String path) {
this.analyser = analyser;
this.path = path;
}
public List<Item> getItems() {
// Use injected analyser and a path to the text file to extract the data
}
}
但我不知道如何配置Spring来自动装配它。
答案 0 :(得分:1)
您可以通过多种不同的方式实现它,这可能取决于您的设计。
其中一个可以在弹簧环境中初始化3个不同的分析仪,并使用'@Qualifier'注释连接ItemRepositoryImpl中的所有三个分析仪。借助额外的方法参数,ItemRepositoryImpl可以决定将请求路由到哪个分析器。
对于路径变量,您也可以遵循类似的方法。
如果您的问题是关于如何在bean中连接基元类型的具体问题,请检查post。它指定了如何在spring上下文中初始化String变量。