Проводка репозиториев с использованием beans.xml для множества реализаций - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть три интерфейса, которые собираются вместе: 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 что-то в этом роде?Я имею в виду автоматическое соединение десятков реализаций интерфейса в карту?

1 Ответ

0 голосов
/ 06 октября 2018

На самом деле я использовал комбинацию Applicationcontext#getBean и SimpleJpaRepository, как в этом ответе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...