Spring Boot 与 Couchbase 整合教程

news/2025/3/25 20:27:28/

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取


Spring Boot 与 Couchbase 整合教程

环境要求

  • JDK 8+
  • Spring Boot 2.7.x
  • Couchbase Server 7.x
  • Maven/Gradle

步骤 1:创建Spring Boot项目

使用 start.spring.io 创建项目,添加以下依赖:

  • Spring Web(可选,用于REST API)
  • Spring Data Couchbase

或手动添加Maven依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-couchbase</artifactId>
</dependency>

步骤 2:配置Couchbase连接

application.ymlapplication.properties 中添加配置:

spring:couchbase:connection-string: couchbase://localhostusername: your-usernamepassword: your-passwordbucket:name: your-bucketdata:couchbase:auto-index: true # 自动生成索引(开发环境建议开启)

步骤 3:定义实体类

创建一个实体类并使用注解标记:

java">import org.springframework.data.annotation.Id;
import org.springframework.data.couchbase.core.mapping.Document;@Document
public class User {@Idprivate String id;private String name;private String email;// 省略构造方法、Getter/Setter
}

步骤 4:创建Repository接口

继承 CouchbaseRepository 实现基本CRUD:

java">import org.springframework.data.couchbase.repository.CouchbaseRepository;public interface UserRepository extends CouchbaseRepository<User, String> {// 自定义查询方法List<User> findByName(String name);
}

步骤 5:编写Service层

java">import org.springframework.stereotype.Service;@Service
public class UserService {private final UserRepository userRepository;public UserService(UserRepository userRepository) {this.userRepository = userRepository;}public User createUser(User user) {return userRepository.save(user);}public Optional<User> getUserById(String id) {return userRepository.findById(id);}
}

步骤 6:创建REST Controller(可选)

java">import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/users")
public class UserController {private final UserService userService;public UserController(UserService userService) {this.userService = userService;}@PostMappingpublic User createUser(@RequestBody User user) {return userService.createUser(user);}@GetMapping("/{id}")public Optional<User> getUser(@PathVariable String id) {return userService.getUserById(id);}
}

步骤 7:高级配置(可选)

自定义 CouchbaseConfig 类以调整连接池、超时等参数:

java">@Configuration
public class CouchbaseConfig extends AbstractCouchbaseConfiguration {@Overridepublic String getConnectionString() {return "couchbase://localhost";}@Overridepublic String getUserName() {return "your-username";}@Overridepublic String getPassword() {return "your-password";}@Overridepublic String getBucketName() {return "your-bucket";}@Overrideprotected void configurePoolOptions(Builder builder) {builder.connectTimeout(Duration.ofSeconds(10)); // 自定义超时设置}
}

步骤 8:测试API

使用 curl 或 Postman 测试:

# 创建用户
curl -X POST -H "Content-Type: application/json" -d '{"name":"John", "email":"john@example.com"}' http://localhost:8080/users# 查询用户
curl http://localhost:8080/users/{id}

常见问题排查

  1. 连接失败

    • 检查Couchbase服务是否运行
    • 验证 connection-string 格式是否为 couchbase://ip
    • 确认用户名/密码和Bucket名称正确
  2. N1QL查询错误

    • 确保Bucket已创建Primary索引:
      CREATE PRIMARY INDEX ON `your-bucket`
      

总结

通过以上步骤,您已实现:

  • Spring Boot与Couchbase的集成
  • 基本数据操作(CRUD)
  • REST API的创建
  • 自定义配置选项

如需深入使用,可参考:

  • Spring Data Couchbase官方文档
  • Couchbase Java SDK文档

提示:生产环境中需配置更完善的错误处理、索引优化及安全策略。


http://www.ppmy.cn/news/1582523.html

相关文章

DeepSeek R1 本地部署指南 (3) - 更换本地部署模型 Windows/macOS 通用

0.准备 完成 Windows 或 macOS 安装&#xff1a; DeepSeek R1 本地部署指南 (1) - Windows 本地部署-CSDN博客 DeepSeek R1 本地部署指南 (2) - macOS 本地部署-CSDN博客 以下内容 Windows 和 macOS 命令执行相同&#xff1a; Windows 管理员启动&#xff1a;命令提示符 CMD ma…

淘宝历史价格数据获取指南:API 与爬虫方案的合法性与效率对比

引言 在淘宝平台的购物生态中&#xff0c;消费者希望通过了解商品历史价格来判断当前价格是否实惠&#xff0c;商家也需要借助历史价格数据制定合理的营销策略、分析市场趋势。获取淘宝商品历史价格数据主要有 API 和爬虫两种方案&#xff0c;它们在合法性与效率上存在显著差异…

【RK3588嵌入式图形编程】-SDL2-渲染文本

渲染文本 文章目录 渲染文本1、概述2、初始化与退出SDL_ttf3、错误检查4、加载字体文件5、渲染文本6、Surface Blitting7、缩放文本8、完整代码9、总结在本文中,将介绍如何在SDL2应用程序中使用官方的SDL_ttf扩展来渲染和操作文本。 1、概述 在这一课中,我们将看到如何在程序…

c语言之网络初识

一、网络由来 冷战时期&#xff0c;美国设立的DARPA&#xff08;国防高级研究项目局 Defense Advance Research Project Agency&#xff09;要实现各大型设备电脑进行资源共享&#xff0c;并且不会互相影响&#xff08;一个毁则全毁&#xff0c;分散并联式&#xff09;ARPA网络…

使用brower use AI 代理自动控制浏览器完成任务

第一步&#xff1a;终端运行命令下载 brower use pip install browser-use 第二步&#xff1a; 终端运行命令下载playwright playwright install 第三步&#xff1a;新建test.py代码&#xff0c;粘贴复制以下代码 import asyncio import osfrom dotenv import load_doten…

个人学习编程(3-22) leetcode刷题

连续子数组&#xff1a;&#xff08;难&#xff09; 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 需要理解的知识&a…

JVM垃圾回收笔记01-垃圾回收算法

文章目录 前言1. 如何判断对象可以回收1.1 引用计数法1.2 可达性分析算法查看根对象哪些对象可以作为 GC Root ?对象可以被回收&#xff0c;就代表一定会被回收吗&#xff1f; 1.3 引用类型1.强引用&#xff08;StrongReference&#xff09;2.软引用&#xff08;SoftReference…

实验10决策树

实验10决策树 一、实验目的 &#xff08;1&#xff09;理解并熟悉决策树算法思想和原理&#xff1b; &#xff08;2&#xff09;熟悉决策树算法的数学推导过程&#xff1b; &#xff08;3&#xff09;能运用决策树算法解决实际问题并体会算法的效果&#xff1b; &#xff08;4…