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();
  }
}
相关推荐
SunnyDays10111 分钟前
Java 如何为 PDF 添加、修改和删除书签
java·pdf
铃木之影33 分钟前
Java 版本 RAG 示例(Spring AI + Milvus)
java·人工智能·spring
C++、Java和Python的菜鸟39 分钟前
第14章 项目部署(Linux)
java
todoitbo1 小时前
MongoDB迁移:从烟囱式部署走向 KES-AI 时代融合数据库架构
人工智能·mongodb·数据库架构·国产数据库·kingbasees
智海深蓝1 小时前
智慧渔业海上养殖数字孪生实践方向与难点拆解分析
java·前端·网络
2601_955760071 小时前
Claude API 多人协作中的版本管理方法
java·ai编程
梦想的旅途21 小时前
企业微信API二次开发:外部群模块功能清单与全场景对接
java·python·企业微信
校招VIP2 小时前
[校大]27届东华理工大学JAVA简历:中厂简历通过率30%
java·秋招·校招·实习·产品岗·27届
一个天蝎座 白勺 程序猿2 小时前
MongoDB迁移新范式|从烟囱式孤岛到KES-AI融合架构
人工智能·mongodb·架构·kingbasees
老白干2 小时前
基于 Spring AOP 的操作日志记录:以 DeptController 增删接口为例
java·python·spring