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();
  }
}
相关推荐
m0_752035636 分钟前
markdown语言格式
java
布朗克1686 分钟前
12 封装与构造方法
java·开发语言·封装·构造方法
z落落16 分钟前
C# 抽象类(abstract)
java·开发语言·c#
大湿兄啊啊啊28 分钟前
MID360S调试
java·服务器·前端
.Cnn33 分钟前
Maven进阶知识点
java·maven
布朗克16836 分钟前
11 面向对象思想入门
java·对象
拽着尾巴的鱼儿38 分钟前
lombok.RequiredArgsConstructor bean 注入
java·lombok
铁链鞭策大师40 分钟前
JavaEE之多线程
java·开发语言·java-ee
摇滚侠43 分钟前
Maven 入门+高深 jar 包冲突 167-171
java·maven·jar