gpt4 book ai didi

java - 如何检索给定域类的 Spring 数据存储库实例?

转载 作者:IT老高 更新时间:2023-10-28 13:52:24 26 4
gpt4 key购买 nike

给定某个类 Bar 中所有 Spring 数据存储库的列表:

@Autowired
private List<Repository> repositories;

如何在上述列表中找到现有域类 Foo 的存储库?

假设存在以下情况:

@Entity
public class Foo {
...
}

public interface FooRepository extends JpaRepository<Foo, String> {}

最佳答案

Spring Data Commons 包含一个类 Repositories这需要 ListableBeanFactory查找其中定义的所有存储库 bean,并公开 API 以按域类(通过 ….getRepository(Class<?> type))获取这些实例。

应谨慎使用此类。由于存储库实例正在进行一些重要的代理生成,因此您必须确保 RepositoriesApplicationContext 期间尽可能晚地创建实例创建。首选方法是实现 ApplicationListener并通过监听 ContextRefreshedEvent 创建实例.

如果您正在编写 Web 应用程序,最安全的使用方式是 Repositories是通过引导 ApplicationContext 中的存储库由 ContextLoaderListener 创建并放置 Repositories (详见 Spring MVC 的 reference documentation

关于java - 如何检索给定域类的 Spring 数据存储库实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com