У меня есть три интерфейса, которые собираются вместе: CsvParser
, DboMapper
и CrudRepository
.Теперь у меня есть около 100 реализаций каждой из них, и я хочу связать их в Map с использованием beans.xml.Затем любой файл, который я получаю, я просто запрашиваю соответствующий синтаксический анализатор, маппер и репозиторий для выполнения работы.
<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>
Однако последний бин на самом деле является CrudRepository и, следовательно, интерфейсом, который не может быть создан.Могу ли я как-нибудь вручную подключить репозиторий JPA (mysql)?
Или путь к @Autowire
что-то в этом роде?Я имею в виду автоматическое соединение десятков реализаций интерфейса в карту?