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();
  }
}
相关推荐
热爱编程的小李3 小时前
基于若以开发的新版情怀麻将后台
java
zhanghaha13146 小时前
HTML系列教程:14_HTML 表单与输入框 <form>、<input> 零基础详解
java·前端·javascript
yxlalm11 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
程序员清风11 小时前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
Seoyoneh12 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
海南java第二人12 小时前
对外 API 如何保证幂等性?插入数据 / 上传表格场景全方案汇总
java·幂等性
tryxr12 小时前
Chat2Excel 文件服务模块上传文件功能开发
java·项目·oss·easyexcel·文件服务
Tangyuewei12 小时前
Java 写 Agent:模型只是组件
java·开发语言
彧azz13 小时前
Java学习语法篇:变量
java·学习
Horn Still Sounds14 小时前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机