- 博客(256)
- 资源 (1)
- 收藏
- 关注
原创 JAiRouter v2.7.0 发布:AI 模型网关的架构重塑与性能飞跃
文章摘要: JAiRouter v2.7.0发布,作为AI模型服务的统一网关,提供OpenAI兼容API、负载均衡、限流熔断等功能。本次更新重点包括:1) 架构微服务化重构,模块化提升开发效率;2) 新增实时监控Dashboard;3) 智能熔断器支持自适应阈值调整;4) 完整支持语音转文字(STT)功能;5) 测试覆盖率提升至32.2%。支持一键Docker部署,可对接Ollama、vLLM等多种后端,相比Nginx等方案在AI领域功能更专精。开源免费,助力开发者统一管理多模型服务。
2026-06-24 10:30:38
200
原创 【开源自荐】JAiRouter:一个轻量级 AI 模型服务网关的开源实践
JAiRouter:轻量级AI模型服务网关 JAiRouter是一款基于Spring Boot 3.5和WebFlux构建的轻量级AI模型服务网关,专为中小团队设计,支持5分钟快速部署。核心功能包括: 统一接口:兼容OpenAI API格式,支持多模型后端(如GPUStack、Ollama、vLLM等)无缝切换。 智能路由:提供轮询、加权、最少连接等负载均衡策略,动态分配请求流量。 安全认证:集成JWT和API Key双重认证,保障服务访问安全。 高可用保障:内置熔断器、限流器和自动故障转移机制,提升服务稳
2026-06-12 11:10:23
336
原创 手把手实现本地Code Agent:Spring AI + Ollama + Qwen 打造Java开发智能助手
文章摘要: 本文介绍了如何基于Spring AI 2.0 + Ollama + Qwen2.5-Coder构建本地化Code Agent,实现自主规划、工具调用和代码生成能力。内容涵盖: 本地化Code Agent的价值:解决云端AI的隐私、成本和稳定性问题,支持代码理解、工具调用和零成本运行。 AI Agent核心原理:对比普通对话模型与自主Agent的关键差异,强调动态决策和工具调用能力。 环境搭建:通过Ollama部署Qwen2.5-Coder模型,并配置Spring Boot项目集成Spring A
2026-04-07 11:21:13
572
原创 Java团队低成本落地大模型,不用学Python
本文旨在帮助熟悉Spring Boot的Java开发者,理解如何用最小成本将国产大模型能力集成到现有系统中,重点关注架构思路、关键决策点和可复用的代码模式。
2026-03-31 15:52:12
445
原创 Spring AI 进阶:用“模型裁判“量化提示词质量的完整方案
本文介绍了基于Spring AI构建的自动化提示词评估体系,通过LLM-as-a-Judge方法量化提示词质量。核心架构包含三个角色:候选模型生成回答、裁判模型进行结构化评分、对抗模型检测安全漏洞。文章详细展示了评估标准对象定义、裁判服务实现(强制JSON输出)、双客户端配置策略(区分业务和评估模型)以及对抗性测试逻辑(检测提示词注入攻击)。这套体系通过代码实现自动评估,避免了人工评估的主观性和高成本,为提示词优化提供了数据支撑。
2026-03-24 10:11:09
388
原创 Spring AI + pgvector 实战:构建带语义缓存的智能 RAG 流程,大幅降低 Token 成本
利用 Spring AI 的语义缓存机制结合 pgvector,在 RAG(检索增强生成)流程中引入“双层相似度校验”。不仅缓存用户问题,更对历史回复进行摘要后二次校验,将高相似度的历史问答作为背景知识注入,从而避免重复调用大模型进行全文推理,显著降低 Token 消耗和响应延迟。
2026-03-18 10:58:18
535
原创 Java机器学习新选择:Tribuo框架详解与逻辑回归实战
摘要: 本文介绍Oracle开源的Java机器学习库Tribuo,为Java开发者提供原生ML解决方案。Tribuo具有强类型安全、ONNX支持、溯源追踪等特性,支持分类、回归、聚类等任务。文章以鸢尾花分类为例,详细展示项目结构搭建、Maven依赖配置和数据集准备,帮助开发者从零构建生产级逻辑回归模型。Tribuo解决了Java生态中ML工具链缺失的问题,无需依赖Python即可实现完整机器学习流程。
2026-03-16 15:02:13
483
原创 告别Spring启动慢?ActiveJ 6.0异步Web框架实战
ActiveJ 6.0实战指南摘要:本文详细介绍了高性能Java Web框架ActiveJ 6.0的核心特性和使用方法。从环境配置到基础示例,展示了如何快速搭建Hello World应用。重点讲解了ActiveJ的异步架构优势、轻量级DI容器使用以及模块化设计,通过代码示例演示了依赖注入和服务层实现。相比传统框架,ActiveJ在启动速度(0.65秒vs14秒)和内存占用(1.4MBvs17MB)方面具有显著优势,特别适合高并发、低延迟场景。
2026-03-16 11:22:57
315
原创 别被后缀名骗了:Java 中如何用 Apache Tika 识破文件伪装
摘要 本文深入探讨了文件类型识别的安全风险与技术方案。通过分析文件后缀名的不可靠性,指出仅依赖文件名判断文件类型的危险性,强调应基于文件头的Magic Bytes进行真实类型检测。重点介绍了使用Apache Tika实现安全文件类型检测的方法,包括核心代码实现、性能优化技巧(如限制读取长度)以及安全防御措施(如白名单机制)。文章还对比了不同技术方案的优劣,并指出Tika的适用场景和局限性(如无法识别纯文本和加密文件)。最后提供了生产环境中的安全建议,帮助开发者在安全性与性能间取得平衡。
2026-03-13 10:24:09
507
原创 Java原生推理新选择:Deliverance库深度解析
本文介绍了Edward Capriolo开发的纯Java推理引擎Deliverance,该系统旨在为Java应用提供轻量级本地大模型推理能力,无需依赖Python生态或外部服务。Deliverance采用模块化设计,支持Safetensors模型格式,可自动适配CPU/GPU计算后端,并通过量化优化资源使用。文章详细解析了其架构特点、核心功能及与Spring Boot的集成方式,包括依赖配置和模型服务封装示例,为Java开发者提供了高效嵌入AI推理能力的解决方案。
2026-03-12 10:33:30
420
原创 Javaluator 与 Spring AI 深度集成:构建智能表达式计算工具
本文探讨了将Javaluator数学表达式计算器集成到SpringAI框架的两种方案:传统@Tool注解模式和ModelContextProtocol(MCP)服务模式。通过详细代码示例展示了基础计算、财务计算、科学计算和单位转换等工具的实现方法,对比分析了两种集成模式在架构、扩展性、安全性等方面的差异。文章还提供了完整的部署配置示例,包括SpringBoot配置、Dockerfile和Kubernetes部署方案。这种"AI+专业工具"的集成模式,能有效弥补大语言模型在精确计算方面的不
2026-01-23 10:52:56
1167
原创 JDBC元数据深度实战:企业级数据资源目录系统构建指南
本文摘要: 《JDBC元数据深度实战:企业级数据资源目录系统构建指南》深入探讨了JDBC DatabaseMetaData接口在企业级数据治理中的核心价值。文章首先揭示了JDBC元数据在管理大规模异构数据库环境中的战略意义,特别强调了性能优化和缓存策略的重要性。随后详细剖析了DatabaseMetaData接口的技术本质和核心能力分类,包括表结构元数据、约束关系元数据等关键功能。通过实战代码示例展示了如何获取表结构、列信息、主外键等元数据,为构建企业级数据资源目录系统提供了完整的技术链路。文章还分享了跨数据
2026-01-22 11:00:53
840
原创 Oracle 不给 JRE 了,Java 开发者该怎么办?
Java 运行时环境精简方案 随着 Java 11 起 Oracle 不再提供独立 JRE,开发者需要自行构建精简运行时环境。Java 9 引入的 jlink 工具可根据应用实际依赖创建自定义运行时映像,仅包含必要模块,显著减小部署体积(可达标准 JRE 的10%-20%),同时提升启动速度和安全性。 jlink 适用于模块化应用,通过分析模块依赖关系生成包含最小化 JVM 和必要系统模块的独立运行时。典型应用场景包括容器化部署、无服务器架构和资源受限设备。
2025-11-26 15:28:09
916
原创 Java 开发者注意!JEP 500 将彻底改变 `final` 字段的使用方式
Java 重大变革:JEP 500 强化 final 字段不可变性 Java 将迎来重大改变!JEP 500 提案旨在彻底解决 final 字段可通过反射修改的问题,确保其真正不可变。当前,反射 API 允许修改 final 字段,这不仅破坏代码预期,还限制 JVM 优化。JDK 26 将默认禁止此类操作,开发者需通过命令行显式启用修改权限(如 --enable-final-field-mutation)。
2025-11-21 11:50:58
755
原创 Java 25:Windows 文件操作的开发者须知
摘要:JDK 25在Windows文件操作上引入了重要变化。File.delete命令不再自动移除只读属性,而是直接返回false;路径中包含空格的文件操作将始终失败。这些变化旨在提高安全性和一致性,但需要开发者更新代码。过渡期可使用-Djdk.io.File.allowDeleteReadOnlyFiles=true系统属性恢复旧行为。建议开发者及时调整代码,确保应用在JDK 25环境下的稳定运行。
2025-11-21 10:22:24
655
原创 Java 开发者看过来:JmDNS 让服务注册与发现如此简单!
摘要: JmDNS 是一个基于 Java 的开源库,通过 mDNS 协议实现本地网络中的服务注册与发现,无需中心服务器,简单高效。适用于微服务、物联网等分布式场景,支持跨平台使用。通过简洁的 API,开发者可快速实现服务注册(JmDNS.registerService)和服务发现(ServiceListener监听)。Maven 引入依赖即可集成,适合开发环境和小型网络,显著降低部署复杂度。
2025-11-20 11:35:08
848
原创 本体论新手必读:RDF、RDFS 和 OWL 的简单指南
本文介绍了本体论的基本概念及其在语义网中的应用。本体论是一种用于组织和描述领域知识的模型,通过定义类、属性及其关系来实现知识的结构化表示。文章详细解释了RDF(资源描述框架)、RDFS(RDF扩展)和OWL(Web本体语言)三种本体论语言的特点与区别:RDF使用三元组表示基础数据,RDFS支持基本类与属性定义,而OWL能表达更复杂的逻辑约束。还展示了如何在Jena框架中使用Java代码创建本体论模型。
2025-11-19 15:18:46
1606
原创 Java Record:简化代码,提升效率
Java Record:简化数据类的革命性特性 Java Record 是 Java 14 引入的一种简化数据类的方式,它通过自动生成构造函数、访问器、equals、hashCode 和 toString 方法,大幅减少样板代码。Record 声明简洁,如 record JavaMascot(String name, int yearCreated) {},同时支持自定义验证逻辑和添加方法。它特别适合作为不可变的数据传输对象(DTO),与函数式编程和并发编程完美结合。
2025-11-19 11:14:33
1031
原创 从繁琐到优雅:用 Project Panama 改变 Java 原生交互
Project Panama 彻底改变了 Java 与原生代码的交互方式,通过全新的 FFM API 简化了开发流程。传统 JNI 需要编写繁琐的 C/C++ 粘合代码,而 Panama 让开发者可以直接在 Java 中调用原生函数。FFM API 提供了 Linker、MemorySegment 等核心组件,支持安全的内存管理和灵活的数据结构映射。示例展示了如何调用 C 标准库函数 (strlen/getpid)、自定义原生函数以及处理原生结构体,相比 JNI 大幅减少了代码量。
2025-11-17 16:56:15
1064
原创 别再调远程接口!把 jVector 嵌入式向量搜索引擎装进 Java 服务
jVector 嵌入式向量搜索引擎为 Java 服务提供本地化向量检索解决方案,摆脱远程接口依赖。其技术核心包括 HNSW 分层索引、Vamana 磁盘优化和两级量化压缩,支持 TB 级数据和毫秒级查询。通过七步法实现从数据构建到线上查询全流程,包括码本训练、增量建图和应用内加载。提供四种业务场景模板,在 100 万条 128 维数据下实现 P99 <5ms 延迟和 <200MB 内存占用。关键优势在于无需 GPU、独立进程或网络连接,将向量搜索能力直接嵌入 Java 服务,适用于边缘计算。
2025-11-17 16:30:00
786
原创 Java + Fuseki 实战:一键创建图谱、自动推理隐含知识
本文介绍了如何在Java应用中实现与Apache Jena Fuseki的集成,完成知识图谱的全生命周期管理。主要内容包括: Fuseki服务部署 - 基于Kubernetes环境部署,启用HTTPS与Shiro安全认证 核心功能实现: 动态创建Fuseki数据集 执行SPARQL UPDATE实现数据增删改 通过SPARQL SELECT进行数据查询 推理增强 - 通过本地加载本体(Ontology)和构建推理模型(InfModel),在客户端实现知识推理功能 安全认证 - 所有操作均支持Basic Au
2025-11-17 11:00:00
1784
原创 刚学 Java 就该懂的 Object 类:所有对象的‘共同祖先’
Java中Object类是所有类的隐式根类,为所有对象提供通用方法。文章通过Car类示例展示了Object类的隐式继承特性,即使不显式声明extends Object,类仍继承equals()、hashCode()、toString()等方法。重点讲解了如何正确重写这些方法,包括实现对象相等性比较(equals)、维护哈希一致性(hashCode)以及提供有意义的字符串表示(toString)。文章还演示了多态性在继承体系中的应用,强调Object类在Java集合框架中的基础作用。
2025-11-17 10:23:43
1155
原创 RDF 与 RDFS:知识图谱推理的基石
本文深入解析知识图谱的核心标准RDF与RDFS。RDF通过"主语-谓语-宾语"三元组描述任意实体及其关系,实现了数据的开放性和可链接性。RDFS作为RDF的扩展,提供了基本的词汇表结构,包括类(Class)、属性(Property)的定义及其继承关系(rdfs:subClassOf, rdfs:subPropertyOf),并通过rdfs:domain和rdfs:range约束属性的使用范围和值类型。文章通过书店本体实例和代码示例,展示了如何使用这些标准构建语义化的数据模型,为知识图谱和
2025-11-14 11:47:58
1230
原创 告别混乱!Spring Properties Cleaner助你打造整洁配置文件
摘要 Spring Properties Cleaner是一个Maven插件,用于自动整理Spring项目中的混乱配置文件。它能: 检测并修复配置文件中的重复键、格式不一致等问题 提供聚类排序功能,将相同前缀的属性归并分组 支持分阶段重构,从消除冗余到提取公共配置 保持注释位置,遵循最小改动原则 该工具帮助开发者: 提升配置文件可读性 减少潜在错误 便于团队协作和代码审查 为后续迁移到.yml格式做准备 建议采用渐进式修改策略,先解决重复项,再优化排序和格式,最后考虑配置提取。
2025-11-13 14:57:04
1109
原创 OSHI:Java跨平台系统监控的神器,一行代码搞定!
OSHI是一款纯Java跨平台系统监控库,可轻松获取操作系统、硬件及网络信息。支持Windows/macOS/Linux,无需原生代码,仅需添加依赖即可使用。主要功能包括:获取操作系统详情、系统运行时间、CPU核心数及负载、内存总量及使用率、磁盘存储信息等。相比传统方法,OSHI具有跨平台兼容性、功能全面、简单集成等优势。虽然存在传感器数据依赖硬件、只读系统信息等局限,但仍是Java开发者进行系统监控的理想选择。
2025-11-13 11:24:52
907
原创 Apache Jena :Kubernetes 环境下的 Fuseki 高可用安全部署方案
本文介绍在Kubernetes环境下部署高可用Apache Jena Fuseki知识图谱服务的方案。重点包括:1) 采用单写实例保证TDB2数据一致性;2) 通过PersistentVolume实现数据持久化;3) 基于Apache Shiro实现细粒度RBAC权限控制,支持用户个人空间和团队共享空间的多级权限隔离;4) 提供完整的安全配置模板和权限验证示例。方案实现了知识图谱服务的生产级部署要求,兼顾安全性、可靠性和可运维性。
2025-11-13 10:30:00
1156
原创 Apache Jena 知识图谱持久化:选择适合你的存储方案
Apache Jena 提供多样化知识图谱持久化方案,满足不同场景需求: 内存模型:适用于快速原型开发,高性能但不持久化 文件存储:简单持久化方案,适合小规模数据 TDB存储:高性能嵌入式三元组存储,适合大规模单机应用 Fuseki服务:提供HTTP接口,支持跨平台访问和分布式部署 选型建议: 开发测试首选内存模型或TDB 生产环境根据规模选择TDB(单机)或Fuseki集群(分布式) 简单应用可考虑文件存储 TDB注重单机性能,Fuseki强调服务化和分布式能力,二者可结合使用。
2025-11-12 10:30:36
1002
原创 使用 JSch 进行 SFTP 操作
摘要 本文介绍了如何使用JSch库实现SFTP操作。首先讲解了如何添加JSch依赖项,然后详细说明了建立SSH会话的步骤,包括主机密钥管理和认证(密码与公钥/私钥认证)。接着介绍了SFTP通道的创建和使用,包括目录切换、文件列表查看和文件传输功能(上传和下载)。文章提供了代码示例和常见问题的解决方案,帮助开发者快速实现安全的文件传输功能。
2025-11-12 10:00:00
518
原创 通过 HelloWorld 深入剖析 JVM 启动过程
摘要: 本文通过分析简单的HelloWorld程序,深入解析JVM启动全流程。从java命令执行开始,详细介绍了JVM参数验证、系统资源检测、环境准备等初始化步骤。重点探讨了类加载三阶段(加载、链接、初始化)及垃圾回收器选择机制。文章还提供了JVM性能优化建议,包括类加载优化、Project Leyden的AOT功能应用,以及关键JVM参数调优。通过理解这些底层机制,开发者可以更高效地进行Java程序调试和性能优化。
2025-11-11 17:07:02
794
原创 Apache Jena:利用 SPARQL 查询与推理机深度挖掘知识图谱
Apache Jena是一个强大的Java框架,专为语义网和知识图谱设计。该文深入解析了Jena的SPARQL查询语法和推理机功能,通过人事档案案例生动展示了推理机自动推导隐含知识的能力。文章详细介绍了Jena支持的多种推理机类型(RDFS、OWL、自定义规则等)及其应用场景,并提供Java代码示例演示如何将推理机与SPARQL查询结合使用。最后给出了不同推理机的选择建议,帮助开发者根据项目需求选择合适工具,提升知识图谱应用的智能化水平。
2025-11-10 10:01:32
1118
原创 Apache Jena SPARQL 查询完全指南:入门与实战案例
本文介绍了使用Apache Jena执行SPARQL查询的完整指南。SPARQL是用于RDF数据的标准查询语言,在知识图谱领域地位相当于SQL。教程从基础开始,涵盖创建模型、加载数据以及执行各种查询类型。特别强调了WHERE子句中的图模式匹配机制,通过Mermaid图直观展示数据图与查询图的匹配过程。文章还对比了变量命名规范(?和$前缀),解释了SPARQL引擎如何通过变量绑定实现数据检索。通过Hello World示例演示了完整查询流程,为开发者提供了SPARQL的实用入门指导。
2025-11-07 11:07:58
1281
原创 感谢 star 点亮 JAiRouter 的星标,也感谢每一位关注项目的朋友
感谢用户harryzwh为JAiRouter项目点亮Star,并向所有关注者致谢。JAiRouter是一个基于Spring Boot的AI模型服务路由网关,支持多种AI服务的统一管理。文章分享了项目近况数据:131次提交、45,000+行代码、123次克隆和3位贡献者。作者阐述了开源初衷是解决AI服务对接痛点,并邀请开发者试用、贡献和分享该项目。最后再次感谢社区支持,表示将持续优化项目体验,欢迎更多参与者加入。
2025-11-07 10:39:07
967
原创 使用 Apache Jena 构建 Java 知识图谱
本文介绍了使用Apache Jena构建Java知识图谱的方法。首先说明了知识图谱的基本概念及其应用场景,然后通过Maven添加Jena依赖。教程详细演示了如何创建RDF模型、定义Java实体(类、方法等)及关系(继承、调用等),并以动物类和可移动接口为例进行实现。文章重点讲解了SPARQL查询语法,展示如何查询继承关系、接口实现和方法调用。最后介绍了Jena的推理功能,通过RDFS推理引擎推导隐含关系。整个流程涵盖了知识图谱从构建到查询再到推理的全过程。
2025-11-06 11:00:01
1285
原创 JAiRouter v1.1.0 发布:把“API 调没调通”从 10 分钟压缩到 10 秒
v1.1.0 只干了一件事——把 Postman 搬进控制台,让你秒级验证网关后端到底通不通。过去 40 天,我们收到最多的工单不是“熔断失效”,而是:“我新接了一个模型,curl 能跑,网关 502,到底谁的问题?打开 Postman复制网关 URL填 Authorization改 HTTP Header对比返回值平均耗时 8-12 分钟——还要在内外网跳来跳去。于是我们在控制台里塞了一个「API 测试试验场选实例 → 写消息 → 点发送 → 看结果,全程不出浏览器不带令牌。
2025-10-28 16:22:33
837
原创 jVector:高效向量搜索库
信息检索中,单词可表示为特征向量。例如,"apple"可向量化为[0.98,0.2],表示其作为"水果"的概率很高,而具有"蓝色"属性的概率较低。通过距离函数计算,我们可以找到相似的向量,如"banana"可能表示为[0.94,0.1]。向量搜索的核心就是高效准确地找出相似向量。本文展示了jVector通过HNSW和DiskANN实现的高效向量搜索能力,包括索引构建和查询操作。该库为大数据场景下的相似性搜索提供了可靠解决方案。
2025-10-24 11:15:22
582
原创 JAiRouter:解决从单卡到集群推理服务的演进痛点
JAiRouter是针对大模型推理场景设计的轻量级网关,解决了单卡到集群演进中的核心痛点。通过OpenAI接口归一化,统一了Ollama/vLLM等异构框架的访问;内置负载均衡、熔断、限流等治理能力,替代传统Nginx+Spring Cloud的多组件方案。在Spring AI架构中实践显示:开发效率提升60%(代码量减少),运维成本下降40%(组件数4→1),并实现模型感知的智能路由。该方案为AI推理服务提供了开箱即用的生产级流量治理能力,特别适合从实验环境向集群化部署过渡的团队。
2025-10-17 16:10:22
797
原创 JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
从 2025 年 9 月 6 日第一次把 .git 推到 GitHub,到今天 10 月 16 日——短短 40 天 ⏳,一个人 🧑💻 包揽架构 🏗️、编码 ⌨️、布道 📣,把 13 个模块、356 文件、3.6 万行“能跑就行”的草稿,熬成可灰度的 1.0.0 🚀。167 次提交 📊,绿点排成单人栈 trace;+48 757 / −12 333 行增删,没有 merge 花活 🈚,没有 squash 造假,每一次 push 都留在历史里供人检阅 👀。平均 24 h 4.2 次提交
2025-10-16 17:10:09
962
原创 Java 25 发布,性能提升与新特性全解析
Java 25 于 2025 年 9 月发布,带来多项重要更新:1)模块导入声明(JEP 511)允许通过import module M导入模块所有公共类型,优化大型项目依赖管理;2)紧凑源文件(JEP 512)支持省略类声明并允许实例主方法,降低学习门槛;3)灵活构造函数体(JEP 513)允许构造器调用前执行代码,解决父类构造器调用子类方法时的初始化问题。此外,新增java.lang.IO类简化基础I/O操作。这些改进使Java更易用且安全,同时保持向后兼容性。
2025-10-15 17:45:19
1811
原创 洞见:强类型 vs 弱类型,AI 编程时代,谁更适合大规模项目?
文章摘要:本文探讨AI编程时代中,强类型语言(如Java)相比弱类型语言(如Python/JavaScript)的优势。研究发现,强类型语言的类型约束能显著提升AI生成代码的质量:1)类型注解作为明确文档,减少AI推理不确定性;2)编译时检查降低"幻觉"错误;3)跨文件引用更可靠。虽然弱类型语言在快速原型开发中仍有优势。
2025-10-11 16:33:22
1018
原创 JGraphlet:一个简洁强大的Java任务流水线构建库
JGraphlet:简洁高效的Java任务流水线构建库 JGraphlet是一个轻量级、零依赖的Java库,专门用于构建和管理任务流水线。其核心设计基于图形模型,将任务视为节点,连接关系作为边,形成有向无环图(DAG)。该库提供两种任务类型:异步Task和同步SyncTask,支持混合使用。JGraphlet具有明确的API设计,支持扇入/扇出模式,通过PipelineContext实现任务间数据共享。作为AutoCloseable资源,它能确保安全关闭,并默认采用异步执行方式。
2025-10-11 15:11:43
967
jdk-11.0.5_windows-x64_bin.7z
2019-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅