我有三个接口,分别是CsvParser
,DboMapper
和CrudRepository
。现在,我喜欢每个实现的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
这样的方法吗?我的意思是将数十种接口的实现自动布线到地图中?