使用bean.xml链接存储库以实现许多实现

时间:2018-09-20 08:23:52

标签: java spring spring-boot spring-data-jpa

我有三个接口,分别是CsvParserDboMapperCrudRepository。现在,我喜欢每个实现的100个实现,我想使用beans.xml将它们连接到Map中。然后,无论我得到什么文件,我都只是要求相应的解析器,映射器和存储库来完成这项工作。

 <context:component-scan base-package="xxx" />
 <jpa:repositories base-package="xxx" />

 <util:map id="loaders" map-class="java.util.HashMap">
        <entry key="account-list.csv"><ref bean="accountListLoader" /></entry>
        <!-- more to come -->
    </util:map>
 <bean id="accountListLoader" class="xxx.etl.CsvFileLoader">
    <constructor-arg index="0">
        <bean class="xxx.model.implementations.accountlist.AccountListCsvParser" />
    </constructor-arg>
    <constructor-arg index="1">
        <bean class="xxx.model.implementations.accountlist.AccountListMapper"/>
    </constructor-arg>
    <constructor-arg index="2">
        <bean class="xxx.model.implementations.accountlist.AccountListRepositoryImpl" />
    </constructor-arg>
</bean>

但是最后一个bean实际上是一个CrudRepository,因此是一个不能实例化的接口。我可以以某种方式手工连接JPA(mysql)存储库吗?

或者是@Autowire这样的方法吗?我的意思是将数十种接口的实现自动布线到地图中?

1 个答案:

答案 0 :(得分:0)

实际上,我最终使用了answer这样的Applicationcontext#getBeanSimpleJpaRepository的组合