Spring Data访问 MongoDB(十六)----CDI集成

存储库接口的实例通常由容器创建,在使用Spring Data时,Spring是最自然的选择。从1.3.0版本开始,Spring Data MongoDB附带了一个自定义的CDI扩展,允许你在CDI环境中使用存储库抽象。扩展是JAR的一部分。要激活它,请将Spring Data MongoDB JAR放入类路径中。现在,你可以通过为MongoTemplate实现CDI Producer来设置基础设施(infrastructure),如下例所示:

java 复制代码
class MongoTemplateProducer {

    @Produces
    @ApplicationScoped
    public MongoOperations createMongoTemplate() {

        MongoDatabaseFactory factory = new SimpleMongoClientDatabaseFactory(MongoClients.create(), "database");
        return new MongoTemplate(factory);
    }
}

Spring Data MongoDB CDI扩展选择可用的MongoTemplate作为CDI bean,并在容器请求存储库类型的bean时为Spring Data存储库创建代理。因此,获取Spring Data存储库的实例需要声明@Inject属性,如下例所示:

java 复制代码
class RepositoryClient {

  @Inject
  PersonRepository repository;

  public void businessMethod() {
    List<Person> people = repository.findAll();
  }
}
相关推荐
Rsun045513 分钟前
Spring AI + RAG + 向量库 10 道模拟面试
人工智能·spring·面试
C蔡博士5 分钟前
最近点对问题(Closest Pair of Points)
java·python·算法
APIshop6 分钟前
Java调用亚马逊商品详情API接口完全指南
java·开发语言·python
不光头强13 分钟前
jwt学习
java·大数据·学习
凸头17 分钟前
美团Leaf发号器
java
SmartBrain23 分钟前
基于 Spring AI 构建多智能体协作系统(高级版)
java·人工智能·spring
艾莉丝努力练剑25 分钟前
文件描述符fd:跨进程共享机制
java·linux·运维·服务器·开发语言·c++
工藤新一¹28 分钟前
《操作系统》第一章(1)
java·服务器·前端
Han.miracle37 分钟前
Lombok 构造相关核心注解全解析
java·linux·算法
Java面试题总结37 分钟前
2026最新Java八股文(完整版)
java·开发语言·jvm·数据库·java面试·java八股文