Можно ли создать автоматически реализуемый репозиторий Spring Data без инициализации контекста Spring? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть этот репозиторий Spring Data.Spring Data автоматически реализует пользовательские методы (с использованием отражения, прокси-серверов или чего-либо еще)

public interface UserRepository extends CrudRepository<User, String> {
    //custom methods
}

Где-то у меня есть это:

@Autowired
UserRepository userRepository;

Теперь я избавляюсь от Springконтекст и прекратить использование Spring на основе внедрения зависимостей.Интересно, возможно ли создать экземпляр UserRepository без инициализации контекста Spring.Примерно так:

UserRepository userRepository = new UserRepository();

Очевидно, что это не работает.Но я ищу что-то подобное.Согласно этому ответу , невозможно увидеть сгенерированный код репозитория, потому что Spring использует среду выполнения прокси.

Есть ли способ достичь того, чего я хочу?

1 Ответ

0 голосов
/ 15 февраля 2019

Я нашел решение.Вам нужно использовать RepositoryFactorySupport класс для создания хранилища.

В моем случае я использовал Elasticsearch и ElasticsearchRepository из Spring Data, так что это работает для меня:

ElasticsearchRepositoryFactory factory = new ElasticsearchRepositoryFactory(jestTemplate);
MyRepo myRepo = factory.getRepository(MyRepo.class);
...