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

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

31.1 Redis

Redis是一个缓存,消息代理和功能丰富的键值存储。Spring Boot为Lettuce和 Jedis客户端库提供了基本的自动配置, 并为Spring数据Redis提

供了它们之外的抽象。

有一个 spring-boot-starter-data-redis “Starter”用于以方便的方式收集依赖项。默认情况下,它使用 Lettuce。该启动器处理传统和反

应应用程序。

我们还提供 spring-boot-starter-data-redis-reactive “Starter”以与其他具有反应支持的商店保持一致。

31.1.1连接到Redis

您可以像注射任何其他Spring Bean一样注入自动配置的 RedisConnectionFactory , StringRedisTemplate 或vanilla RedisTemplate 实

例。默认情况下,实例尝试在 localhost:6379 连接到Redis服务器。以下列表显示了此类bean的示例:

@Component

public class MyBean {

private StringRedisTemplate template;

@Autowired

public MyBean(StringRedisTemplate template) {

this.template = template;

}

// ...

}

您还可以注册实现 LettuceClientConfigurationBuilderCustomizer 的任意数量的beans以进行更高级的自定义。如果您使

用Jedis,也可以使用 JedisClientConfigurationBuilderCustomizer 。

如果您添加自己配置的任何类型的 @Bean ,它将替换默认值( RedisTemplate 除外,当排除基于bean名称时, redisTemplate ,而不是它的

类型)。默认情况下,如果类路径上有 commons-pool2 ,则会出现池连接工厂。

31.2 MongoDB

MongoDB是一个开源的NoSQL文档数据库,它使用类似JSON的模式而不是传统的基于表的关系数据。Spring Boot提供了一些使用MongoDB

的便利,包括 spring-boot-starter-data-mongodb 和 spring-boot-starter-data-mongodb-reactive “Starters”。

31.2.1连接MongoDB数据库

要访问Mongo数据库,您可以注入自动配置的 org.springframework.data.mongodb.MongoDbFactory 。默认情况下,实例尝试

在 mongodb://localhost/test 连接到MongoDB服务器。以下示例显示如何连接到MongoDB数据库:

import org.springframework.data.mongodb.MongoDbFactory;

import com.mongodb.DB;

@Component

public class MyBean {

private final MongoDbFactory mongo;

@Autowired

public MyBean(MongoDbFactory mongo) {

this.mongo = mongo;

}

// ...

public void example() {

DB db = mongo.getDb();

// ...

}

}

您可以设置 spring.data.mongodb.uri 属性以更改URL并配置其他设置,例如副本集,如以下示例所示:

spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test

或者,只要您使用Mongo 2.x,就可以指定 host / port 。例如,您可以在 application.properties 中声明以下设置:

spring.data.mongodb.host=mongoserver

spring.data.mongodb.port=27017

如果您已经定义了自己的 MongoClient ,它将用于自动配置合适的 MongoDbFactory 。支持 com.mongodb.MongoClient

和 com.mongodb.client.MongoClient 。

如果您使用Mongo 3.0 Java驱动程序,则不支持 spring.data.mongodb.host 和 spring.data.mongodb.port 。在这种情况

下, spring.data.mongodb.uri 应该用于提供所有配置。

如果未指定 spring.data.mongodb.port ,则使用默认值 27017 。您可以从前面显示的示例中删除此行。

如果您不使用Spring Data Mongo,则可以注入 com.mongodb.MongoClient beans而不是 MongoDbFactory 。如果您想完全

控制建立MongoDB连接,您也可以声明自己的 MongoDbFactory 或 MongoClient bean。

如果您使用的是反应式驱动程序,则SSL需要Netty。如果Netty可用且自己的工厂尚未自定义,则自动配置会自动配置此工厂。

0 人点赞