如何自动装入具有原始类型依赖注入的存储库?

时间:2017-09-28 03:42:27

标签: spring spring-boot dependency-injection

我有三个文本文件,它们都包含相同类型的数据,但数据在每个文件中的存储方式不同。

我想要一个界面:

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来自动装配它。

1 个答案:

答案 0 :(得分:1)

您可以通过多种不同的方式实现它,这可能取决于您的设计。

其中一个可以在弹簧环境中初始化3个不同的分析仪,并使用'@Qualifier'注释连接ItemRepositoryImpl中的所有三个分析仪。借助额外的方法参数,ItemRepositoryImpl可以决定将请求路由到哪个分析器。

对于路径变量,您也可以遵循类似的方法。

如果您的问题是关于如何在bean中连接基元类型的具体问题,请检查post。它指定了如何在spring上下文中初始化String变量。