我有这个Spring Data存储库。自定义方法由Spring Data自动实现(使用反射,代理或其他方式)
public interface UserRepository extends CrudRepository<User, String> {
//custom methods
}
我在某个地方有这个
@Autowired
UserRepository userRepository;
现在,我摆脱了Spring上下文,并停止使用基于Spring的依赖注入。我想知道是否可以在不初始化Spring上下文的情况下创建UserRepository
的实例。像这样:
UserRepository userRepository = new UserRepository();
显然,这不起作用。但是我正在寻找类似的东西。根据{{3}},由于Spring使用代理运行时,因此无法查看存储库的生成代码。
有没有办法实现我想要的?
答案 0 :(得分:0)
我找到了解决方案。您需要使用RepositoryFactorySupport
类来创建存储库。
就我而言,我使用的是Spring Data的Elasticsearch和ElasticsearchRepository
,因此对我有用:
ElasticsearchRepositoryFactory factory = new ElasticsearchRepositoryFactory(jestTemplate);
MyRepo myRepo = factory.getRepository(MyRepo.class);