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();
  }
}
相关推荐
我是一颗柠檬2 分钟前
【Java后端技术亮点】Feed流三级缓存设计,从10秒到100毫秒的优化实战
java·开发语言·后端·缓存
超梦dasgg8 分钟前
Java 正则表达式 完整详解(语法 + 核心类 + 常用方法 + 实战案例)
java·开发语言·正则表达式
码语智行8 分钟前
操作日志注解模块
java·前端·python
方也_arkling9 分钟前
【Java-Day17】API篇-BigInteger和BigDecimal
java·开发语言
程序员三明治9 分钟前
【AI】RAG 数据分块(Chunk)策略与实践
java·人工智能·后端·ai·大模型·llm·rag
星辰_mya10 分钟前
ThreadLocal之微服务链路追踪
java·开发语言·前端
松仔log13 分钟前
Jetpack——DataStore
java·kotlin
咸鱼翻身小阿橙14 分钟前
文件读写 + Qt Model/View + 自定义分页+搜索过滤
java·数据库·qt
在繁华处17 分钟前
Java从零到熟练(十):JVM基础与性能优化
java·jvm·性能优化
Demon1_Coder20 分钟前
Day1-SpringAI-1.0.0版本
java·开发语言·前端