自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿华田的博客

博客专注于大数据方向,谢谢观看!!!

  • 博客(191)
  • 资源 (12)
  • 收藏
  • 关注

原创 flink实战--metrics监控与rest api

Flink metrics简介 Flink的metrics是Flink公开的一个度量系统,允许收集flink程序的公开指标到外部系统,我们也可以自定义指标通过metric收集,实际开发时经常需要查看当前程序的运行状况,flink 提供了 UI 界面,有比较详细的统计信息。但是 UI 界面也有不完善的地方,比如想要获取 flink 的实时吞吐。本文将详细介绍如何通过metric......

2019-05-24 17:39:13 15834 7

原创 flink实战--读写Hbase

简介 在Flink文档中,提供connector读取源数据和把处理结果存储到外部系统中。但是没有提供数据库的connector,如果要读写数据库,官网给出了异步IO(Asynchronous I/O)专门用于访问外部数据,详细可看:https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/o...

2019-01-18 19:07:18 8362 35

原创 flink实战--flink集群的搭建与部署

flink实战案例一:flink集群的搭建与部署1.下载Flink压缩包下载地址:http://flink.apache.org/downloads.html根据集群环境的情况下载相应的版本的flink压缩包hadoop2.6,Scala2.11,所以下载:flink-1.5.0-bin-hadoop26-scala_2.11.tgz解压tar -zxf flink-1.5.0-bi...

2019-01-17 16:44:09 15041

原创 spark将数据写入ES(ElasticSearch)终极总结

简介spark接入ES可以使用多种方式,常见类型如下。将Map对象写入ElasticSearch 将case class 类对象写入ElasticSearch 将Json的字符串写入ElasticSearch本文主要介绍将case class 类对象写入ElasticSearch:也就是获取数据然后使用case class封装数据,然后在case class中选取一个字段当做 id,...

2019-01-09 13:11:47 31821 19

原创 flink实战--水印(watermark)终极总结

水印(waterMark) 了解水印前需要了解事件时间(eventTime)和处理时间(processTime)的概念,参考博客:https://blog.csdn.net/aA518189/article/details/82908993了解事件时间。 Flink通过水印来推进事件时间。水印是嵌入在流中的常规记录。计算程...

2018-12-24 15:12:23 7821 2

原创 flink实战--flinkSQL入门大全

FlinkSQL概念介绍Table API & SQL Apache Flink具有两个关系API - 表API和SQL - 用于统一流和批处理。Table API是Scala和Java的语言集成查询API,允许以非常直观的方式组合来自关系运算符的查询,Table API和SQL接口彼此紧密集成,以及Flink的DataStream和DataSet A...

2018-11-12 18:07:03 25430 3

原创 flink实战--flink原理解析

Flink出现的背景 我们知道目前流处理的主要流行的计算引擎有,Storm,SparkStreaming。但是这个两个计算引擎都有自己的局限性。Storm实现了低延迟,但是目前还没有实现高吞吐,也不能在故障发生的时候准确的处理计算状态(将数据从一个事件保存到另一个事件的,这些保留下来的是数据较计算状态),同时也不能实现exactly-once。SparkStreaming通过微批处理方法............

2018-09-30 15:40:22 22395 7

原创 flink实战--实战案例

本文以flink本地模式 进行各个场景的实战开发Flink本地运行模式Flink支持两种不同的本地运行机制: LocalExecutionEnvironment启动完整的Flink运行环境,包括一个JobManager和一个TaskManager。这些包含了内存管理以及在集群模式下运行时所运行的所有内部算法。 LocalEnvironment也可以向Flink传入用户自定义配置。...

2018-09-18 11:52:31 8880 3

原创 kafka工作原理与使用

1.Kafka概述1.1.什么是KafkaApache Kafka是分布式发布-订阅消息系统(消息中间件)。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。传统消息中间件服务RabbitMQ、Apache ActiveMQ等,Apache Kafka与传统消息系统相比,有以下优点...

2018-06-30 20:43:01 2062

原创 kafka集群的搭建与使用

1.下载Apache kafka 官方: http://kafka.apache.org/downloads.htmlScala 2.11 -kafka_2.11-0.10.2.0.tgz(asc,md5)2.Kafka集群安装第一步:安装JDK &配置JAVA_HOME第二步:安装Zookeeper 参照Zookeeper官网搭建一个ZK集群, 并启动Z...

2018-06-30 20:33:57 978

原创 Hadoop之hdfs的工作原理和安装

一 HDFS简介(Hadoop Distributed File System)1简介:是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很...

2018-04-08 22:32:07 1017

原创 redis的安装与使用

下载redis因为redis一般会在linux系统进行安装,所以下载时要下载linux系统的安装包。官网地址:http://redis.io/下载地址:http://download.redis.io/releases/redis-3.2.8.tar.gz因为Redis是用c语言写的 需要需要现编译在安装编译工具:make BuildFileant build.xml...

2018-04-01 16:52:26 496

原创 基于ssm三大框架实现登录注册功能的配置过程

第一步  ssm jar包整合,本人的下载资源里面有整合的jar包主要有:ssm整合jar包 ,jstl,数据库连接,josn junit,等jar包第二步,建立各类包和配置文件,尽量把各个配置文件分开,统一放在一个自己建立的config文件夹中,容易区分,后面也好检查更改主要配置,mybatis,spring—mybatis,和springmvc,以及web.xml和jdbc(数据库连接信息)j...

2018-03-17 16:35:13 2592

原创 RAG系统查询速度提升利器 -- 语义缓存

你的RAG系统上线了,用户反馈"回答倒是准,就是太慢了"。你一看日志,每次查询的耗时分布是:向量检索:100msBM25检索:80msRRF融合:20msLLM生成:2000ms合计:约2900ms接近3秒。如果用户问的跟上一个问题差不多,你其实可以跳过这些步骤直接返回缓存结果。但传统缓存用key匹配——"公司报销流程"和"报销流程是什么"是不同的key,缓存命中率极低。语义缓存解决这个问题——用向量相似度判断"两个问题是否在问同一件事",相似就直接返回缓存,不相似再走完整RAG流程。

2026-08-26 21:21:39 371

原创 AI Agent 记忆系统架构设计与工程实践

本文深入探讨了AI Agent记忆系统的设计挑战与解决方案。传统"全量存储"方式在生产环境中面临成本高、性能下降和关键信息遗漏等问题。文章提出三层架构:工作记忆(当前上下文)、短期记忆(会话级缓冲)和长期记忆(跨会话知识)。长期记忆检索需结合相关性、重要性和时效性三重评分。工程实践中需解决记忆膨胀、新旧冲突、信息丢失和缓存失效等难题。记忆系统的本质是认知管理,关键在于精准控制信息的存储、遗忘和提取时机,这决定了Agent的智能表现和用户体验。

2026-08-07 18:02:20 357

原创 Spring中使用MDC和traceId实现日志链路追踪

分布式系统日志链路追踪方案 在分布式系统中,通过MDC(Mapped Diagnostic Context)实现日志全局链路追踪,核心步骤如下: 唯一ID生成:使用UUID或Snowflake算法为每个请求分配traceId,通过拦截器(如Filter)注入MDC。 线程间传递:通过自定义线程池(如ThreadPoolExecutorMdcWrapper)和包装类(ThreadMdcUtil),确保子线程继承父线程的MDC上下文,解决异步任务traceId丢失问题。 日志配置:在Logback中配置%mdc

2026-08-06 21:16:16 223

原创 RAG系统检索准确性提升利器-- HyDE(假设性回答)

摘要: 在专业领域RAG(检索增强生成)应用中,传统向量检索常因用户口语化提问与专业文档间的“语义鸿沟”导致召回失败。HyDE(假设性文档嵌入)通过让LLM生成包含专业术语的“假答案”,将其作为检索依据,将非对称检索转化为对称的“文档到文档”匹配,显著提升准确率。实际应用中需注意:1)选用轻量模型降低延迟;2)动态路由区分场景,避免过度生成;3)严格限制输出长度;4)结合稠密与稀疏检索(HybridSearch)平衡语义与关键词。HyDE通过LLM的“术语翻译”能力,成为解决垂直领域RAG召回瓶颈的有效方案

2026-08-05 13:46:13 1054

原创 Agent智能路由架构设计

摘要:随着AI技术发展,企业使用Agent改造业务系统时面临请求分配难题,智能路由(Agent Router)成为关键解决方案。当前主要有四种路由实现模式:基于规则的路由响应快但泛化性差;基于小模型的路由泛化性好且响应较快,是项目首选;基于大模型的路由无需预处理但响应慢且调试困难;基于嵌入的路由依赖向量检索技术,平衡了准确度和响应速度。不同模式在准确度、响应时间和落地复杂度上各有优劣,企业需根据业务需求选择合适方案。

2026-08-03 18:25:22 199

原创 LangChain4j -- 别再把 @Tool 写满屏了!动态工具 ToolProvider 工程化实战指南

本文探讨了LangChain4j中工具调用的工程隐患及优化方案。静态@Tool注解虽然简单易用,但在生产环境中会导致Token成本失控、模型幻觉增加、权限治理困难等问题。相比之下,动态ToolProvider接口能根据用户权限和对话场景按需提供工具,实现更精细化的控制。文章通过电商客服案例,展示了如何动态判断用户意图后精准提供订单查询工具,并强调工具描述应像接口契约般严谨。核心观点是:工具调用应遵循"按需投喂"原则,在Java代码层面完成权限管控,通过动态工具选择提升系统的安全性和稳定性

2026-07-23 14:51:17 383

原创 LiteFlow实战

摘要: LiteFlow是一款国产轻量级规则引擎,专注于解耦和编排复杂业务逻辑。它通过组件化拆分业务步骤,利用EL表达式动态编排执行流程,支持串行、并行、条件分支等复杂逻辑,并具备热部署能力,修改规则无需重启服务。核心优势包括: 解耦业务逻辑:将代码拆分为独立组件,通过配置组合流程,避免硬编码; 灵活编排:支持多种流程控制(如并行、异步),提升响应速度; 热更新:规则和脚本可实时生效,适应频繁变更的业务需求; 多脚本支持:集成多种动态语言(如JavaScript、Python),Java脚本编译速度优化20

2026-07-20 16:23:45 161

原创 longchain4j实战 -- Multi-Agent协调机制实战

本文介绍了Multi-Agent架构在企业复杂业务场景中的应用优势。针对单Agent在处理多领域任务时存在Prompt复杂、工具选择准确率低等问题,提出了SupervisorAgent模式:通过主Agent协调多个专业Agent(如FlinkAgent、KafkaAgent)分工协作。文中以天气穿搭助手为例,展示了基于LangChain4j的多Agent实现方案,包含WeatherAgent、OutfitAgent和负责调度的SupervisorAgent,通过工具封装实现自主任务规划和结果整合。该架构显著

2026-07-16 15:55:14 255

原创 Java MCP(Model Context Protocol)实战大全

摘要: MCP(Model Context Protocol)是AI时代连接大模型与企业系统的开放协议,解决AI无法理解企业内部接口的问题。传统HTTP接口面向开发者,而MCP通过标准化描述(如功能、参数、返回值)让AI理解并调用系统能力。核心角色包括MCPServer(提供能力描述与执行)和MCPClient(调用工具),调用流程涵盖工具发现、请求生成与结果返回。Java开发者可通过Solon等SDK快速构建MCPServer,需手动配置MCP地址供AI客户端连接。MCP本质是AI领域的“OpenAPI”

2026-07-16 14:56:25 174

原创 LangChain4j -- 如何使用自定义的tool增强模型能力

摘要: LangChain4j的Tool机制赋予大模型调用后端能力,通过函数声明(如Java方法标注@Tool)转换为OpenAI兼容的JSON Schema。模型根据用户问题判断是否调用Tool,执行后回填结果生成响应。基础依赖需注意版本组合(如0.35.0)。示例中,UserTools定义查询余额/积分的方法,AiServices绑定模型与工具,实现自动调用。企业场景可扩展多Tool协作、复杂对象返回及Prompt策略控制,建议构建统一工具层集成Hive、ES等数据平台能力。Tool机制是Demo到生产

2026-06-26 16:53:58 237

原创 LangChain4j -- LangChain4j入门大全

LangChain4j:Java生态中的大模型应用开发框架 摘要:LangChain4j是Java生态中面向大语言模型(LLM)应用的开发框架,类似Python的LangChain。它帮助Java开发者快速构建企业级智能应用,支持多种主流模型(OpenAI/DeepSeek/Claude等)和功能:ChatModel(核心聊天接口)、Message消息体系(系统/用户/AI消息)、Prompt模板、Memory上下文记忆、Embedding向量化以及RAG检索增强等。通过封装HTTP请求、对话历史管理等复杂

2026-06-26 16:12:43 306

原创 RRF 混合检索 + BGE 重排序

本文针对纯向量检索在关键词精确匹配上的不足,提出了一种混合检索方案。通过结合RRF(Reciprocal Rank Fusion)融合算法和BGE-Reranker重排序技术,有效提升了检索系统的性能。实验表明,该方案在Agentic RAG系统中使Recall@10提升22%至0.82,MRR提升至0.76,且无需调参、对异常分数具有鲁棒性。文章详细介绍了技术原理、实现流程和性能优化,包括并行检索架构、中文分词处理等实践要点,并对比分析了各环节对检索效果的影响。该方案在保持可控延迟的前提下,显著提升了检索

2026-06-23 21:09:39 324

原创 检索增强生成(RAG)有哪些优秀的方案

本文介绍了三种检索增强生成(RAG)系统的主要特点和应用场景。VectorRAG基于向量相似度检索,支持多模态数据处理;GraphRAG通过图结构管理知识网络,擅长关系分析;AgenticRAG具备自主决策能力,适用于复杂工作流。选择系统需考虑数据类型、使用场景和可扩展性:VectorRAG适合文档检索、GraphRAG适用于知识图谱、AgenticRAG应用于智能客服等自动化场景。实施建议包括根据需求选择架构、优化数据处理流程及建立性能监控体系。

2026-06-22 14:51:24 245

原创 RAG系统设计 -- 多路召回设计

摘要:检索增强生成(RAG)通过结合向量检索、关键词检索和知识图谱检索三种互补方式,构建了工业级RAG架构。向量检索擅长语义匹配,关键词检索适合精准术语查询,知识图谱则能挖掘实体关联。三者配合Rerank重排模型,可有效提升检索质量。文章还分析了不同相似度计算方法的特点,并指出不同检索结果的评分标准差异大,必须经过归一化处理才能融合排序。这种多路召回策略显著提升了RAG系统的准确性和可解释性。

2026-05-25 15:01:00 433

原创 MySQL性能优化大全

摘要:本文系统总结了SQL多表关联查询的优化原则。核心结论包括:1)执行计划比数据量更重要;2)JOIN性能取决于驱动表选择和索引匹配;3)排序优化需确保排序列来自驱动表且命中索引;4)分页应先排序取ID再回表。文章详细分析了多表关联的6个典型慢点,提出"主诉求决定驱动表"原则,强调复合索引设计应遵循"等值过滤→排序列→关联列"顺序。针对不同场景给出具体优化方案,包括主表分页、关联表排序等模板,并指出LEFT JOIN按右表排序易导致性能问题。最后列举8个常见分页陷阱

2026-04-10 10:44:05 390

原创 基于VScode构建企业级云容器开发平台技术方案

本文提出了一套企业级VSCode云开发平台建设方案,旨在解决传统研发模式中存在的环境不一致、资源不足、安全风险等问题。方案采用控制面与数据面分离架构,基于Kubernetes实现开发容器管理,通过OpenResty网关实现多租户隔离。平台整合了Ceph存储、分层镜像设计和大数据组件支持,提供标准化开发环境、数据安全管控和一体化开发体验。重点介绍了网络隔离、存储优化、镜像分层和权限审计等核心模块设计,为企业构建高效安全的云原生开发平台提供了系统化解决方案。

2026-04-02 16:55:50 730 1

原创 paimon实战 -- 深度解析 paimon 数据更新黑科技

Apache Paimon通过创新的MergeEngine机制解决了传统数仓更新成本高的问题。其四种合并引擎各具特色:Deduplicate保留最新记录、Partial-Update实现多流拼接、Aggregation支持存储层预聚合、First-Row保留首条数据。基于LSM-Tree架构,Paimon采用追加写入和读时合并的方式,显著提升写入性能。使用Partial-Update引擎时,只需在建表时指定即可实现字段级更新。注意事项包括:NULL值处理、必须定义主键、乱序数据处理和文件合并优化。该技术为实

2026-03-26 20:45:10 106

原创 paimon实战 -- 数据时间旅行原理解析

摘要:Apache Paimon通过Snapshot快照机制实现时间旅行功能,允许查询历史数据版本。其核心原理是采用LSM-Tree结构管理多版本元数据,而非物理备份数据。当数据变更时,Paimon生成新的Snapshot文件记录Manifest清单,并通过追加写方式存储增量数据文件。用户可通过Snapshot ID、时间戳或Tag三种方式回溯数据。系统通过Compaction合并和Snapshot清理机制平衡存储空间,未被引用的旧数据文件才会被物理删除。这一功能为数据容灾、算法回溯和数据审计提供了高效解决

2026-03-13 09:39:41 93

原创 flink源码解析 -- 检查点协调器CheckpointCoordinator

Flink中的CheckpointCoordinator是JobMaster的核心组件,负责协调分布式Checkpoint的全生命周期。作为调度中枢,它定期触发Checkpoint(通过ScheduledExecutorService)、分配唯一ID、向Source注入Barrier,并跟踪各Task的确认状态。关键流程包括:Barrier对齐/非对齐处理、算子状态快照、异步上传和最终确认。其核心职责是确保Checkpoint的定时触发、全局协调和完成确认,但不直接参与状态存储。性能瓶颈常出现在Barrie

2026-02-03 21:21:12 190

原创 java程序性能优化篇

count 只关心“符合条件的行数”,不关心其它表的展示字段。4.**COUNT 与 LIST 同源** | 分页的 count 和 list 的过滤条件、JOIN 策略要一致,且 count 尽量更轻(少 JOIN、少排序)3.**权限/存在性用 EXISTS** | 判断“是否有权限”“是否在某个集合”时,优先用 EXISTS + 索引,少用 `IN (子查询)`2. **先过滤再关联** | 尽量在单表上先完成过滤、排序、分页,再对外做关联,避免“全表 JOIN 后再 LIMIT”

2026-01-30 15:07:41 251

原创 如何基于Flink + Clickhouse打造百亿规模日志查询平台

摘要:本文探讨了日志检索系统从Elasticsearch迁移到ClickHouse的技术方案。Elasticsearch虽具备全文检索优势,但其分词特性与日志场景所需的精准模糊匹配存在本质冲突。相比之下,ClickHouse基于原始字符串匹配的朴素模型更符合日志查询需求。文章详细介绍了基于Flink的高吞吐日志写入架构,强调批量写入对ClickHouse性能的关键影响,并提供了multiMatchAny查询优化、表结构设计等核心实践。通过Flink+ClickHouse组合,实现了低成本、高性能的百亿级日志

2026-01-28 21:27:07 761

原创 paimon实战-- 基于hive-catalog搭建paimon计算与存储环境

本文介绍了基于HiveCatalog统一管理Apache Paimon数据湖元数据的生产实践方案。Paimon作为新一代流批一体数据湖存储,相比Iceberg/Hudi更偏向流式优先设计。通过HiveCatalog实现Flink/Spark/Hive多引擎安全访问同一份Paimon数据,详细讲解了HiveCatalog的优势、整体架构设计、环境准备、部署配置步骤,以及各引擎访问Paimon表的具体方法。该方案解决了filesystem catalog在生产环境中的局限性,利用Hive Metastore实现

2026-01-23 16:43:11 378 1

原创 flin实战 -- 核心参数解析

下游算子可能阻塞(IO / RPC / DB)大并行度(> 500)。Kafka → Flink → 外部服务。,在下游消费能力不足或出现背压时,TM Netty 内存打满。任务启动瞬间建大量连接。

2026-01-13 20:42:03 96

原创 如何基于Jupyter内核自研NoteBook

本文介绍了一套基于微服务架构的Jupyter内核管理系统设计方案。系统采用SpringBoot框架,通过WebSocket实现实时通信,使用Redis进行消息发布订阅。核心功能包括:1)租户隔离的Jupyter服务管理,每个租户独立Pod部署;2)双层Session架构,分离用户会话和内核会话;3)Gateway层连接池管理,实现高效的内核生命周期管理。系统支持内核创建、代码执行、状态监控等功能,并设计了REST API和WebSocket接口规范。技术选型包括MySQL数据持久化、Jupyter消息协议5

2025-12-19 16:19:26 1016

原创 数据质量系统的设计

让数据问题不再依赖“某个老司机”,而是变成一种可复制、可演进的工程能力。如果你正在建设:数据质量平台数据治理体系数据中台 / 数据湖欢迎交流你们当前所处的阶段,很多坑,其实是可以提前避开的。

2025-12-18 16:30:25 550

原创 规则引擎如何选型

在风控、营销、审批、定价、权限控制等系统中,几乎是绕不开的基础能力。但现实情况是:有的团队一上来就引入 Drools,最后发现复杂度远超收益;有的团队用 Groovy 写了上百个脚本,逐渐演变成“第二套业务系统”;还有的团队在规则频繁变更时,依然只能靠发版解决。本文从出发,对业内常见规则引擎进行系统对比,帮助你在真实业务中做出更理性的选型。

2025-12-18 16:28:01 969

原创 低代码开发平台:常用动态脚本Groovy

低代码平台通常内置一堆能力,但留 Groovy 扩展点:自定义计算函数自定义权限规则自定义指标口径。

2025-12-18 16:17:37 392

flink实践案例

本文档总结了国内各个互联网巨头使用flink的案例,有美团,唯品会,滴滴,360等,如何实现对flink的各种应用,同时里面也包含对flink使用的总结。

2018-12-20

最全面的flink入门编程案例

本文的非常详细的介绍了 flink、如何进行大数据开发的,包含flink读取kafka、文本读取,hdfs

2018-09-18

大数据测试数据集

本数据是淘宝开源的用户真是产生的数据,包括商品id,用户id,商品品类id,生成时间,用户行为:pv,cut(加入购车车)。。。。

2018-12-20

flink需要的jersey-core和jersey-client

如果flink提交jar到yarn上运行报如下错误:java.lang.NoClassDefFoundError: com/sun/jersey/core/util/FeaturesAndProperties,在flink的lib包里面添加这两个jar包

2019-03-01

基于SSH的新闻发布系统

本系统是一个基于SSH框架开发的新闻发布系统,使用的是MySql数据库,非常适合初学者练习ssh框架,有一定的实战意义

2018-06-06

基于ssm框架的XX商城系统

本系统是基于ssm框架,模仿小米商城做的一个商城系统,对于学习ssm框架有很大的帮助

2018-03-19

flink-connector-jdbc_2.11-1.11.2.jar

flink本身DDL的方式目前还不支持clickhouse,本jar添加对clickhouse的支持,导入到flink/lib下即可使用

2021-02-24

基于SSM框架开发的共享单车管理系统

本系统是一个基于SSM框架的共享单车后台系统,里面还包括 AJAX,JQUERY,地图定位等技术使用,对于正在学习SSM框架的非常适合,有一定的实战意义。

2018-06-06

连接池 所有jar包

c3p0,dbcp,druid,DButils,所有连接池的jar包,以及工具DBUtils jia包

2018-03-16

josn jar包

josn jar包,在web开发中josn数据用的还是比较多的,使用也不叫简单

2018-03-16

python电子书大全

本资料包括三本完整的python电子书,python核心编程,python从入门到实践,python编程思想

2019-01-01

ssm整合jar包

ssm三大框架所有的jar包整合,里面有所有框架所以需的jar包

2018-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除