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();
  }
}
相关推荐
80530单词突击赢5 分钟前
C++关联容器深度解析:set/map全攻略
java·数据结构·算法
兩尛12 分钟前
c++知识点1
java·开发语言·c++
舟舟亢亢15 分钟前
JVM复习笔记——下
java·jvm·笔记
rainbow688916 分钟前
Python学生管理系统:JSON持久化实战
java·前端·python
有味道的男人30 分钟前
1688获得商品类目调取商品榜单
java·前端·spring
独自破碎E33 分钟前
【中心扩展法】LCR_020_回文子串
java·开发语言
不光头强34 分钟前
spring boot项目欢迎页设置方式
java·spring boot·后端
4311媒体网43 分钟前
自动收藏功能的实现方法
java·开发语言
Yana.nice1 小时前
证书格式的适用场景与核心对比
java·linux