前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构之Spring Boot(四十六)

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

作者头像
用户1289394
发布2022-05-23 14:27:30
1.7K0
发布2022-05-23 14:27:30
举报
文章被收录于专栏:Java学习网Java学习网

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档