{"id":26654356,"url":"https://github.com/guoshiqiufeng/dify-spring-boot-starter","last_synced_at":"2026-05-22T07:15:38.584Z","repository":{"id":281457487,"uuid":"944336112","full_name":"guoshiqiufeng/dify-spring-boot-starter","owner":"guoshiqiufeng","description":"Provide springboot starter for dify to simplify development.","archived":false,"fork":false,"pushed_at":"2025-04-08T11:22:11.000Z","size":641,"stargazers_count":15,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T12:26:26.195Z","etag":null,"topics":["dify","dify-chat","dify-dataset","dify-java","dify-knowledge","dify-sdk-java","dify-spring-boot-starter"],"latest_commit_sha":null,"homepage":"https://guoshiqiufeng.github.io/dify-spring-boot-starter/en","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guoshiqiufeng.png","metadata":{"files":{"readme":"README-zh.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-07T07:05:17.000Z","updated_at":"2025-04-08T11:16:14.000Z","dependencies_parsed_at":"2025-04-08T12:34:18.785Z","dependency_job_id":null,"html_url":"https://github.com/guoshiqiufeng/dify-spring-boot-starter","commit_stats":null,"previous_names":["guoshiqiufeng/dify-spring-boot-starter"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoshiqiufeng%2Fdify-spring-boot-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoshiqiufeng%2Fdify-spring-boot-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoshiqiufeng%2Fdify-spring-boot-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoshiqiufeng%2Fdify-spring-boot-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guoshiqiufeng","download_url":"https://codeload.github.com/guoshiqiufeng/dify-spring-boot-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248358605,"owners_count":21090406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dify","dify-chat","dify-dataset","dify-java","dify-knowledge","dify-sdk-java","dify-spring-boot-starter"],"created_at":"2025-03-25T04:58:40.520Z","updated_at":"2026-05-22T07:15:38.578Z","avatar_url":"https://github.com/guoshiqiufeng.png","language":"Java","funding_links":[],"categories":["人工智能"],"sub_categories":["Spring Cloud框架"],"readme":"## dify-spring-boot-starter\n\n## ![cover-v5-optimized](./docs/.vuepress/public/images/icon.png)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://guoshiqiufeng.github.io/dify-spring-boot-starter/\"\u003e文档\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/guoshiqiufeng/dify-spring-boot-starter-examples\"\u003e示例\u003c/a\u003e ·\n  \u003ca href=\"https://deepwiki.com/guoshiqiufeng/dify-spring-boot-starter\"\u003eDeepWiki\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Maven central](https://img.shields.io/maven-central/v/io.github.guoshiqiufeng.dify/dify-spring-boot-starter.svg?style=flat-square)](https://search.maven.org/search?q=g:io.github.guoshiqiufeng.dify%20AND%20a:dify-spring-boot-starter)\n[![License](https://img.shields.io/:license-apache-brightgreen.svg?style=flat-square)](http://www.apache.org/licenses/LICENSE-2.0.html)\n[![CodeQL](https://github.com/guoshiqiufeng/dify-spring-boot-starter/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/guoshiqiufeng/dify-spring-boot-starter/actions/workflows/github-code-scanning/codeql)\n[![codecov](https://codecov.io/gh/guoshiqiufeng/dify-spring-boot-starter/graph/badge.svg?token=NVQ2SGEQ79)](https://codecov.io/gh/guoshiqiufeng/dify-spring-boot-starter)\n\n\u003c/div\u003e\n\n阅读其他语言版本: [English](README.md)\n\n**🎉 2.0 版本重大更新**: 模块化架构重构，支持纯 Java 项目！查看 [变更记录](CHANGELOG-2.0-zh.md)\n\n### 介绍\n\n为 Dify 提供 Spring Boot Starter 和纯 Java 支持，简化开发。\n\n**2.0 版本新特性**:\n- ✨ 支持纯 Java 项目（无需 Spring）\n- 🔧 模块化架构，灵活的 HTTP 客户端\n- 📦 多种 JSON 编解码器选项（Gson、Jackson 2.x/3.x）\n- 🚀 统一的客户端实现，消除代码重复\n- 🔒 日志脱敏与 SSE 安全加固（v2.1.0+）\n\n### 支持的框架\n\n- Spring Boot 4/3/2\n- 纯 Java 项目（2.0+）\n\n### 最低版本要求\n\n- Java 8\n- Spring Boot 2（Spring 项目）\n\n### 推荐版本\n\n- Java 17+\n- Spring Boot 4/3\n\n### 功能\n\n- 聊天 (Chat)\n- 后台 (Server)\n- 工作流 (Workflow)\n- 知识库 (Dataset)\n- 状态监控 (Status)\n- 日志安全（脱敏与 SSE 保护）\n\n### 使用\n\n#### Maven 镜像仓库\n\n- 国内用户建议使用腾讯镜像仓库，腾讯会自动同步：`https://mirrors.cloud.tencent.com/nexus/repository/maven-public`\n- 不建议使用阿里云 Maven 镜像仓库，同步比较慢\n\n#### 引入 BOM 统一版本管理\n\n```xml\n\u003cdependencyManagement\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.guoshiqiufeng.dify\u003c/groupId\u003e\n            \u003cartifactId\u003edify-bom\u003c/artifactId\u003e\n            \u003cversion\u003e2.3.3\u003c/version\u003e\n            \u003ctype\u003epom\u003c/type\u003e\n            \u003cscope\u003eimport\u003c/scope\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/dependencyManagement\u003e\n```\n\n#### 引入 Starter 依赖\n\n**Spring Boot 3.1+**\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.guoshiqiufeng.dify\u003c/groupId\u003e\n    \u003cartifactId\u003edify-spring-boot-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n**Spring Boot 4.x**\n\n\u003e dify-spring-boot-starter v1.6.0+ 可用\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.guoshiqiufeng.dify\u003c/groupId\u003e\n    \u003cartifactId\u003edify-spring-boot4-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n**Spring Boot 2.x / 3.0.x**\n\n\u003e dify-spring-boot-starter v0.9.0+ 可用\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.guoshiqiufeng.dify\u003c/groupId\u003e\n    \u003cartifactId\u003edify-spring-boot2-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n**纯 Java 项目**\n\n\u003e dify-spring-boot-starter v2.0.0+ 可用\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.guoshiqiufeng.dify\u003c/groupId\u003e\n    \u003cartifactId\u003edify-java-starter\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n#### Spring Boot 自动配置\n\n##### YAML 配置\n\n```yaml\ndify:\n  url: http://192.168.1.10 # Dify 服务地址\n  server:\n    email: admin@admin.com # Dify 服务邮箱（调用 Server API 时需要）\n    password: admin123456 # Dify 服务密码（调用 Server API 时需要）\n    password-encryption: false # 密码加密开关，默认 true\n                                # Dify 1.11.2+ 需要开启（或使用 Base64 密文）\n                                # Dify 1.11.2 以下版本设置为 false\n  dataset:\n    api-key: dataset-aaabbbcccdddeeefffggghhh # 知识库 API Key（调用 Dataset API 时需要）\n```\n\n##### 使用示例\n\n```java\n@Service\npublic class DifyChatService {\n\n    @Resource\n    private DifyChat difyChat;\n\n    public List\u003cString\u003e messagesSuggested(String messageId, String apiKey, String userId) {\n        return difyChat.messagesSuggested(messageId, apiKey, userId);\n    }\n}\n```\n\n#### 手动构建客户端（Builder 模式）\n\n\u003e dify-spring-boot-starter v2.0.0+ 可用\n\n**纯 Java 项目**:\n\n```java\nimport io.github.guoshiqiufeng.dify.client.integration.okhttp.http.JavaHttpClientFactory;\nimport io.github.guoshiqiufeng.dify.client.codec.jackson.JacksonJsonMapper;\nimport io.github.guoshiqiufeng.dify.support.impl.builder.DifyServerBuilder;\nimport io.github.guoshiqiufeng.dify.core.config.DifyProperties;\n\n// 创建 HTTP 客户端工厂（OkHttp）\nJavaHttpClientFactory httpClientFactory = new JavaHttpClientFactory(new JacksonJsonMapper());\n\n// 创建客户端配置\nDifyProperties.ClientConfig clientConfig = new DifyProperties.ClientConfig();\n// 设置其他配置...\n\n// 创建 DifyServerClient\nDifyServerClient difyServerClient = DifyServerBuilder.builder()\n        .baseUrl(\"https://your-dify-api.example.com\")\n        .httpClientFactory(httpClientFactory)\n        .clientConfig(clientConfig)\n        .serverProperties(new DifyProperties.Server(\"admin@example.com\", \"password\"))\n        .build();\n\n// 创建 DifyServer\nDifyServer difyServer = DifyServerBuilder.create(difyServerClient);\n```\n\n**Spring 项目**:\n\n```java\nimport io.github.guoshiqiufeng.dify.client.integration.spring.http.SpringHttpClientFactory;\nimport io.github.guoshiqiufeng.dify.client.codec.jackson.JacksonJsonMapper;\nimport io.github.guoshiqiufeng.dify.support.impl.builder.DifyServerBuilder;\nimport org.springframework.web.reactive.function.client.WebClient;\nimport org.springframework.web.client.RestClient;\n\n// 创建 HTTP 客户端工厂（Spring）\nSpringHttpClientFactory httpClientFactory = new SpringHttpClientFactory(\n        WebClient.builder(),\n        RestClient.builder(),  // Spring 6.1+ / Spring Boot 3.2+\n        new JacksonJsonMapper()\n);\n\n// 创建客户端配置\nDifyProperties.ClientConfig clientConfig = new DifyProperties.ClientConfig();\n// 设置其他配置...\n\n// 创建 DifyServerClient\nDifyServerClient difyServerClient = DifyServerBuilder.builder()\n        .baseUrl(\"https://your-dify-api.example.com\")\n        .httpClientFactory(httpClientFactory)\n        .clientConfig(clientConfig)\n        .serverProperties(new DifyProperties.Server(\"admin@example.com\", \"password\"))\n        .build();\n\n// 创建 DifyServer\nDifyServer difyServer = DifyServerBuilder.create(difyServerClient);\n```\n\n\u003e **注意**: Spring Boot 2.x 环境下，RestClient 不可用，传入 `null` 即可。\n\n更多使用参考查看\n\n- [文档](https://guoshiqiufeng.github.io/dify-spring-boot-starter)\n- [examples](https://github.com/guoshiqiufeng/dify-spring-boot-starter-examples)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=guoshiqiufeng/dify-spring-boot-starter\u0026type=Date)](https://www.star-history.com/#guoshiqiufeng/dify-spring-boot-starter\u0026Date)\n\n![Alt](https://repobeats.axiom.co/api/embed/55a4a85285edbb431a80f6261b7aa1c0a8dc3612.svg \"Repobeats analytics image\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguoshiqiufeng%2Fdify-spring-boot-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguoshiqiufeng%2Fdify-spring-boot-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguoshiqiufeng%2Fdify-spring-boot-starter/lists"}