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可用且自己的工厂尚未自定义,则自动配置会自动配置此工厂。