资讯专栏INFORMATION COLUMN

Spring Boot 参考指南(使用NoSQL技术)

Songlcy / 3237人阅读

摘要:使用技术提供了额外的项目,帮助你访问各种技术,包括,,,,,,,和。我们还提供了一个,以便与具有支持的其他存储保持一致。有关的详细信息,请参阅参考文档。

30. 使用NoSQL技术

Spring Data提供了额外的项目,帮助你访问各种NoSQL技术,包括:MongoDB,Neo4J,Elasticsearch,Solr,Redis,Gemfire,Cassandra,Couchbase和LDAP。Spring Boot为Redis、MongoDB、Neo4j、Elasticsearch、Solr Cassandra、Couchbase和LDAP提供了自动配置,你可以使用其他项目,但是你必须自己配置它们,请参阅projects.spring.io/spring-data的适当参考文档。

30.1 Redis

Redis是一个缓存、消息代理和功能丰富的键值存储,Spring Boot提供了Lettuce和Jedis客户端库的基本自动配置,以及Spring Data Redis提供的在它们之上的抽象。

有一个spring-boot-starter-data-redis “Starter”,可以方便地收集依赖项,默认情况下,它使用Lettuce,该starter同时处理传统应用程序和reactive应用程序。

我们还提供了一个spring-boot-starter-data-redis-reactive “Starter”,以便与具有reactive支持的其他存储保持一致。
30.1.1 连接到Redis

可以像注入任何其他Spring Bean一样注入自动配置的RedisConnectionFactoryStringRedisTemplate或vanilla RedisTemplate实例,默认情况下,该实例试图连接到localhost:6379上的Redis服务器,下面的清单显示了这样一个bean的示例:

@Component
public class MyBean {

    private StringRedisTemplate template;

    @Autowired
    public MyBean(StringRedisTemplate template) {
        this.template = template;
    }

    // ...

}

你还可以注册任意数量的bean,这些bean实现LettuceClientConfigurationBuilderCustomizer用于更高级的定制,如果你使用Jedis,也可以使用JedisClientConfigurationBuilderCustomizer

如果你添加了任何自动配置类型的自己的@Bean,它替换默认值(在RedisTemplate的情况下除外,当排除值是基于bean名称时,则替换为RedisTemplate,而不是它的类型),默认情况下,如果commons-pool2在类路径上,就会得到一个连接池工厂。

30.6 Elasticsearch

Elasticsearch是一个开源、分布式、实时搜索和分析引擎,Spring Boot为Elasticsearch提供了基本的自动配置,上面的抽象由Spring Data Elasticsearch提供,有一个spring-boot-starter-data-elasticsearch “Starter”可以方便地收集依赖项,Spring Boot也支持Jest。

30.6.1 使用Jest连接到Elasticsearch

如果类路径上有Jest,则可以注入一个自动配置的JestClient,该客户端默认以localhost:9200为目标,你可以进一步调整客户端的配置方式,如下面的示例所示:

spring.elasticsearch.jest.uris=http://search.example.com:9200
spring.elasticsearch.jest.read-timeout=10000
spring.elasticsearch.jest.username=user
spring.elasticsearch.jest.password=secret

你还可以注册任意数量的bean,这些bean实现HttpClientConfigBuilderCustomizer,用于更高级的定制,下面的示例调优其他HTTP设置:

static class HttpSettingsCustomizer implements HttpClientConfigBuilderCustomizer {

    @Override
    public void customize(HttpClientConfig.Builder builder) {
        builder.maxTotalConnection(100).defaultMaxTotalConnectionPerRoute(5);
    }

}

要完全控制注册,定义一个JestClient bean。

30.6.2 使用Spring Data连接到Elasticsearch

要连接到Elasticsearch,必须提供一个或多个集群节点的地址,可以通过设置spring.data.elasticsearch.cluster-nodes属性来指定一个逗号分隔的host:port列表的地址。有了这个配置,一个ElasticsearchTemplateTransportClient就可以像其他任何Spring bean一样被注入,如下面的示例所示:

spring.data.elasticsearch.cluster-nodes=localhost:9300
@Component
public class MyBean {

    private final ElasticsearchTemplate template;

    public MyBean(ElasticsearchTemplate template) {
        this.template = template;
    }

    // ...

}

如果你添加自己的ElasticsearchTemplateTransportClient @Bean,它会替换默认。

30.6.3 Spring Data Elasticsearch存储库

Spring Data包括对Elasticsearch的存储库支持,与前面讨论的JPA存储库一样,基本原则是根据方法名称为你自动构造查询。

事实上,Spring Data JPA和Spring Data Elasticsearch共享相同的公共基础设施,你可以以前面的JPA示例为例,假设City现在是Elasticsearch @Document类,而不是JPA @Entity,它的工作方式是相同的。

有关Spring Data Elasticsearch的详细信息,请参阅参考文档。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77371.html

相关文章

  • Spring Boot 参考指南(目录)

    摘要:参考指南使你可以轻松地创建可运行的独立的生产级的基于的应用程序,我们对平台和第三方库有自己的看法,这样你就可以以最低限度工作开始了,大多数应用程序都需要很少的配置。文档本节简要概述了参考文档,它充当文档其余部分的映射。 Spring Boot 参考指南 Spring Boot使你可以轻松地创建可运行的独立的、生产级的基于Spring的应用程序,我们对Spring平台和第三方库有自己的看...

    awesome23 评论0 收藏0
  • 2019 Java 全栈工程师进阶路线图,一定要收藏

    摘要:结合我自己的经验,我整理了一份全栈工程师进阶路线图,给大家参考。乾坤大挪移第一层第一层心法,主要都是基本语法,程序设计入门,悟性高者十天半月可成,差一点的到个月也说不准。 技术更新日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的。 我刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,我相信这也是很多初学者经常面临的问题。​我...

    wangdai 评论0 收藏0
  • Spring 指南(目录)

    摘要:指南无论你正在构建什么,这些指南都旨在让你尽快提高工作效率使用团队推荐的最新项目版本和技术。使用进行消息传递了解如何将用作消息代理。安全架构的主题指南,这些位如何组合以及它们如何与交互。使用的主题指南以及如何为应用程序创建容器镜像。 Spring 指南 无论你正在构建什么,这些指南都旨在让你尽快提高工作效率 — 使用Spring团队推荐的最新Spring项目版本和技术。 入门指南 这些...

    only_do 评论0 收藏0
  • [直播视频] 《Java 微服务实践 - Spring Boot 系列》限时折扣

    摘要:作为微服务的基础设施之一,背靠强大的生态社区,支撑技术体系。微服务实践为系列讲座,专题直播节,时长高达小时,包括目前最流行技术,深入源码分析,授人以渔的方式,帮助初学者深入浅出地掌握,为高阶从业人员抛砖引玉。 简介 目前业界最流行的微服务架构正在或者已被各种规模的互联网公司广泛接受和认可,业已成为互联网开发人员必备技术。无论是互联网、云计算还是大数据,Java平台已成为全栈的生态体系,...

    Enlightenment 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<