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();
  }
}
相关推荐
拆房老料10 分钟前
文档预览开源选型对比:BaseMetas FileView 与 KK FileView,谁更适合你的系统?
java·开源·java-rocketmq·开源软件
Frank_refuel11 分钟前
C++之内存管理
java·数据结构·c++
钱多多_qdd19 分钟前
springboot注解(五)
java·spring boot·后端
2501_9418227524 分钟前
面向灰度发布与风险隔离的互联网系统演进策略与多语言工程实践分享方法论记录思考汇总稿件
android·java·人工智能
@小码农28 分钟前
6547网:202512 GESP认证 C++编程 一级真题题库(附答案)
java·c++·算法
秋929 分钟前
idea中使用AI编程助手Cursor详解
java·intellij-idea·ai编程
q行30 分钟前
java学习日志--IO流(使用)
java·学习·io流
vyuvyucd31 分钟前
Linux线程编程:POSIX与C++实战指南
java·开发语言
菜鸟233号42 分钟前
力扣343 整数拆分 java实现
java·数据结构·算法·leetcode
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 日程管理系统为例,包含答辩的问题和答案
java