Project Icon

spring-data-examples

Spring Data各模块功能展示及数据访问示例集

该代码仓库提供Spring Data各模块的示例项目,覆盖Cassandra、Elasticsearch、JDBC、JPA等多种数据访问技术。通过实际代码演示API使用和模块特性,包括基础CRUD、反应式编程、安全集成和多数据源等高级主题。这些示例为开发者学习Spring Data框架提供了丰富的实践资源。

= Spring Data 示例 image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["由 Develocity 驱动", link="https://ge.spring.io/scans?search.rootProjectNames=Spring Data - Examples"]

image:https://travis-ci.org/spring-projects/spring-data-examples.svg?branch=main[构建状态,link=https://travis-ci.org/spring-projects/spring-data-examples]

此仓库包含不同 Spring Data 模块的示例项目,展示了 API 和如何使用这些模块提供的功能。

我们为各个模块的示例设置了单独的文件夹:

== Apache Cassandra 的 Spring Data

  • example - 展示了 Spring Data 对 Apache Cassandra 的核心支持。
  • kotlin - 使用 Kotlin 和 Cassandra 的示例。
  • reactive - 展示响应式模板和仓库支持的示例项目。

== Spring Data Elasticsearch

  • example - 展示如何使用基本文本搜索、地理空间搜索和分面。它使用高级 REST 客户端支持模板和仓库。
  • reactive - 展示如何使用响应式客户端、模板和仓库功能。

运行测试需要本地 Elasticsearch 实例正在运行。

== Spring Data JDBC

  • basic - Spring Data JDBC 的基本用法。
  • graalvm-native - 此示例将基本的 Spring Data JDBC 应用程序编译为 GraalVM 原生镜像。
  • howto - 与 https://spring.io/blog/2021/09/09/spring-data-jdbc-how-to-use-custom-id-generation[Spring Data JDBC - 如何使用博客文章] 相关的项目集合。
  • immutables - 展示 Spring Data JDBC 与 https://immutables.github.io/[Immutables] 的使用。
  • jmolecules - 演示 jMolecules 与 Spring Data JDBC 的交互。
  • jooq - 演示如何同时使用 jOOQ 和 Spring Data JDBC。
  • mybatis - 演示如何使用 MyBatis 为 Spring Data JDBC 生成 SQL。
  • singlequeryloading - 演示如何启用单查询加载。

== Spring Data JPA

  • eclipselink - 展示如何使用 Spring Data JPA 与 Spring Boot 和 https://www.eclipse.org/eclipselink/[Eclipselink] 的示例项目。
  • example - 可能是您首先想要查看的项目。包含各种示例包,展示了可以使用 Spring Data JPA 的不同层级。查看 simple 包以了解最基本的设置。还包含在虚拟线程上运行的示例。
  • interceptors - 如何使用 AOP 增强仓库的示例。
  • jpa21 - 展示对 JPA 2.1 特定功能的支持(存储过程支持)。
  • multiple-datasources - 如何使用多个 DataSource 的 Spring Data JPA 示例。
  • query-by-example - 展示 Spring Data JPA 使用查询示例的示例项目。
  • security - 如何将 Spring Data JPA 仓库与 Spring Security 集成的示例。
  • showcase - 重构展示,说明如何通过使用 Spring Data JPA 改进基于纯 JPA 的持久层(即:删除几乎所有实现代码)。按照 demo.txt 文件的详细说明进行操作。
  • vavr - 展示对查询方法返回类型支持 https://www.vavr.io[Vavr] 集合类型。

== Spring Data LDAP

  • example - 使用 Spring Data 仓库访问 LDAP 存储的示例。

== Spring Data MongoDB

  • aggregation - 展示 MongoDB 聚合框架支持的示例项目。
  • example - 展示一般仓库功能(包括地理空间功能)、Querydsl 集成和高级主题的示例项目。
  • fluent-api - 展示新的流式 API(MongoTemplate 替代方案)与 MongoDB 交互的示例项目。
  • geo-json - 展示 MongoDB 使用 http://geojson.org[GeoJSON] 的示例项目。
  • gridfs - 展示 MongoDB 使用 gridFS 的示例项目。
  • jmolecules - Spring Data MongoDB 与基于 jMolecules 的领域模型配合使用的示例。
  • kotlin - 使用 https://kotlinlang.org/[Kotlin] 和 MongoDB 的示例。
  • linking - 演示链接文档的可能性。
  • query-by-example - 展示 MongoDB 使用查询示例的示例项目。
  • querydsl - 展示 MongoDB 的命令式和响应式 https://github.com/querydsl/querydsl[Querydsl] 支持的示例项目。
  • reactive - 展示响应式模板和仓库支持的示例项目。
  • repository-metrics - 展示如何收集仓库方法调用指标的示例项目。
  • security - 展示 MongoDB 使用 Spring Security 的示例项目。
  • text-search - 展示 MongoDB 文本搜索功能使用的示例项目。
  • transactions - 展示 MongoDB 4.0 命令式和响应式事务支持的示例项目。

== Spring Data Neo4j

  • example - 展示基本节点和关系实体以及仓库使用的示例。

== Spring Data R2DBC

  • example - Spring Data R2DBC 的基本用法。

== Spring Data Redis

  • cluster - Redis 集群支持的示例。
  • example - 基本 Spring Data Redis 设置的示例。
  • pubsub - 展示使用平台和虚拟线程的 Pub/Sub 用法的示例项目。
  • reactive - 展示响应式模板支持的示例项目。
  • repositories - 演示 Redis 之上的 Spring Data 仓库抽象的示例。
  • sentinel - Redis Sentinel 支持的示例。
  • streams - https://redis.io/topics/streams-intro[Redis Streams] 支持的示例。

运行测试需要本地 Redis 实例正在运行。一种选择是在单独的终端中使用 Docker:

$ docker run -p 6379:6379 redis:5.0

警告:如果您使用完毕,别忘了关闭它!

== Spring Data REST

  • headers - 展示 HTTP 头的填充和使用它们执行条件 GET 请求的示例。
  • multi-store - 基于 Spring Data JPA 和 Spring Data MongoDB 的示例 REST Web 服务。
  • projections - 展示如何使用投影的示例 REST Web 服务。
  • security - 使用 Spring Security 保护的示例 REST Web 服务。
  • starbucks - 使用 Spring Data REST 和 MongoDB 构建的示例 REST Web 服务。
  • uri-customizations - 展示 URI 自定义功能的示例项目。

== Spring Data Web 支持

  • projections - Spring Data Web 支持在投影接口上使用 JSONPath 和 XPath 表达式的示例。
  • querydsl - Spring Data Querydsl Web 集成的示例(从 Web 请求创建 Predicate)。
  • web - Spring Data Web 集成的示例(将 Pageable 实例绑定到 Spring MVC 控制器方法,使用接口绑定 Spring MVC 请求负载)。

== 其他

  • bom - 在非 Spring Boot 场景中使用 Spring Data 发布列车 bom 的示例项目。
  • map - 展示如何使用基于 Map 的仓库的示例项目。
  • multi-store - 在一个项目中同时使用 Spring Data MongoDB 和 Spring Data JPA 的示例项目。

== 注意

  • 示例项目使用了 https://projectlombok.org/[Lombok] 插件。要在 IDE 中获得正确的代码导航,您必须单独安装它。Lombok 在 IntelliJ 插件仓库中可用,也可以为基于 Eclipse 的 IDE https://projectlombok.org/download[下载]。
  • 代码使用了 Java 16 语言特性,因此您需要 Java 16 或更新版本来运行和编译示例。
  • 除非另有说明,大多数存储模块示例通过 Testcontainers 或作为嵌入式/内存服务器启动其数据库。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号