微服务架构之Spring Boot(四十七)

2022-05-23 14:27:46 浏览数 (1)

31.2.2 MongoTemplate

Spring数据MongoDB提供了一个 MongoTemplate 与Spring JdbcTemplate 设计非常相似的 类。与 JdbcTemplate 一样,Spring Boot为您自

动配置bean以注入模板,如下所示:

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.stereotype.Component;

@Component

public class MyBean {

private final MongoTemplate mongoTemplate;

@Autowired

public MyBean(MongoTemplate mongoTemplate) {

this.mongoTemplate = mongoTemplate;

}

// ...

}

有关完整的详细信息,请参阅 MongoOperations Javadoc。

31.2.3 Spring数据MongoDB存储库

Spring数据包括MongoDB的存储库支持。与前面讨论的JPA存储库一样,基本原则是基于方法名称自动构造查询。

实际上,Spring Data JPA和Spring Data MongoDB共享相同的公共基础结构。您可以从前面获取JPA示例,假设 City 现在是Mongo数据类而

不是JPA @Entity ,它的工作方式相同,如下例所示:

package com.example.myapp.domain;

import org.springframework.data.domain.*;

import org.springframework.data.repository.*;

public interface CityRepository extends Repository<City, Long> {

Page<City> findAll(Pageable pageable);

City findByNameAndStateAllIgnoringCase(String name, String state);

}

您可以使用 @EntityScan 注释自定义文档扫描位置。

31.2.4嵌入式Mongo

Spring Boot为Embedded Mongo提供自动配置 。要在Spring Boot应用程序中使用它,请

在 de.flapdoodle.embed:de.flapdoodle.embed.mongo 上添加依赖项。

可以通过设置 spring.data.mongodb.port 属性来配置Mongo侦听的端口。要使用随机分配的空闲端口,请使用值0.

MongoAutoConfiguration 创建的 MongoClient 将自动配置为使用随机分配的端口。

如果未配置自定义端口,则嵌入式支持默认使用随机端口(而不是27017)。

如果类路径上有SLF4J,则Mongo生成的输出会自动路由到名

为 org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongo 的记录器。

您可以声明自己的 IMongodConfig 和 IRuntimeConfig beans来控制Mongo实例的配置和日志路由。

0 人点赞