- 博客(41)
- 收藏
- 关注
原创 解决导出转换错误枚举类型值FastExcel/easyExcel 导出失败
本文介绍了一种解决枚举值在Excel导出时转换失败的方法。通过在返回前端的实体类中新增字符串属性,将枚举值转换为字符串类型输出。具体步骤:1)在DTO类中添加字符串类型字段(如statusDescription)并标注Excel导出注解;2)在导出逻辑中遍历数据列表,将枚举值的中文描述通过getValue()获取并set到新字段中。该方法通过简单的属性转换,有效解决了枚举类型在Excel导出时的兼容性问题,同时保证了数据的完整性和可读性。
2025-12-22 10:13:47
113
1
原创 2024 年 英语六级 12 月 第一套
本文摘要包含三个对话场景的要点分析: 绩效评估对话:男性主管指出女性员工在团队合作方面的不足,女性回应关于邮件效率的看法 职业选择对话:探讨医生职业动机(社区服务/父母影响),强调专业趣味性和成绩稳定性 健身应用讨论:虚拟教练的个性化方案带来新鲜感,但专家认为无法完全替代真人教练 研究记录部分: 跨文化道德规范研究显示七大普世准则 饮食体验中视觉对味觉判断的关键影响 经济状况对人生意义感知的调节作用 (字数:149字)
2025-12-03 17:45:18
585
原创 从三个层面来讲解-针对数据库进行性能优化
数据库优化主要从SQL/索引、数据库设计和系统架构三个层面入手。SQL层面应避免全表扫描,使用覆盖索引,优化JOIN查询和批量插入操作。数据库设计需遵循三大范式,选择合适数据类型,考虑水平分表。架构层面可采用Redis缓存、读写分离、连接池优化(推荐HikariCP/Druid)等措施。通过慢查询日志分析执行计划,重点关注possible_keys、key、type等字段,对ALL类型查询和Using filesort等情况针对性优化。综合运用这些方法可显著提升数据库性能。
2025-11-04 13:51:26
935
1
原创 MyBatis-PLUS DAO层方法(BaseMapper)总结简单介绍
本文展示了一个基于MyBatis-Plus框架的通用CRUD操作实现,包含增删改查核心功能。新增操作支持单对象和批量插入(200条分批处理);删除提供ID删除和条件删除;更新包含全字段更新、部分更新及批量更新(1000条分批处理);查询功能涵盖单条查询、批量ID查询、条件查询、分页查询等,并自动处理分页参数默认值。所有方法均通过@Transactional注解保证事务一致性,在更新操作中自动设置审计字段。该实现提供了灵活的数据操作方式,同时考虑了批量操作的性能和内存优化。
2025-11-04 10:09:56
205
1
原创 java时间类型与数据库 时间类型的匹配
摘要:Java时间处理API经历了从传统Date/Calendar到现代java.time包的演进。传统API存在线程不安全、设计混乱等问题,已不推荐使用。Java8引入的java.time包基于Joda-Time,提供LocalDate、LocalTime、LocalDateTime等线程安全类型,支持显式时区处理(ZonedDateTime)和时间戳(Instant)。现代API在数据库映射中也更清晰:LocalDate→DATE,LocalDateTime→TIMESTAMP/DATETIME,Zon
2025-10-31 17:38:29
549
1
原创 编辑/启用/停用(单次/批量)/详情条件分页查询/新增/删除
本文介绍了一个工作单元管理系统的功能实现方案,主要包括增删改查等基本功能实现。系统采用三层架构设计,包含Controller、Service和DAO层。关键技术点包括: 数据库设计:Oracle表结构创建,包含主键、索引和注释 实体类映射:使用@Data、@Schema等注解实现实体与DTO转换 核心功能实现: 分页查询:使用MyBatis Plus的分页功能 详情查询:包含工作单元和设备信息的关联查询 新增功能:采用"先删后增"策略处理设备关联关系 异常处理:强调空值判断的重要性,防止
2025-10-30 16:20:53
270
1
原创 java实现数化结构展示
文章摘要: 本文介绍了一种树形数据结构的设计与实现方法。通过设置"编码节点"和"父级编码节点"两个字段,构建父子节点关系。实现步骤包括:1)查询所有节点;2)按父节点分组;3)设置子节点;4)返回父节点为空的根节点。文中提供了Java实现代码,包括DTO类定义、Controller接口、Service层树化处理逻辑及Dao层数据访问方法。关键技术点包括使用Optional处理空指针异常,以及通过分组收集器Collectors.groupingBy()构建父子关系映射。
2025-10-28 18:28:59
225
1
原创 真实企业级完整 增删改查功能实现 ,观察一下与你想的有什么不同(已投入生产环境)
本文介绍了基于Java的数据库开发流程,主要包含以下内容: 数据库设计与建表 使用Oracle创建CM_WIP_DURATION表,包含ID、工厂编码、物料编码、工序ID、保质期等字段,并设置主键和索引。 Java实体类与DTO设计 实体类WipDurationEntity使用@TableName注解映射表结构 DTO类WipDurationDTO继承BaseDTO,包含基础字段和业务字段 请求参数类WipDurationPageReq用于分页查询 核心功能实现 分页查询:通过Controller-Serv
2025-10-27 14:07:02
876
1
原创 将Excel数据导入到数据库 前端显示
文章摘要: 该代码实现了一个工单SN管理系统,通过SpringBoot+Swagger构建RESTful接口,主要功能包括Excel文件导入和业务异常统一处理。核心实现包含:1)使用自定义注解@ValidUpload校验文件格式(xls/xlsx);2)通过AOP切面实现文件后缀名验证;3)利用EasyExcel流式读取Excel数据,通过监听器WorkSnImporterDataListener分批处理(每2000条);4)业务层实现数据校验和状态更新,将产品SN状态改为报废并记录NG明细。系统采用MyB
2025-10-24 17:09:38
411
1
原创 下载一个Excel导入的模板
摘要:该代码实现了从后端下载Excel模板文件到前端的功能。通过WorkSnController接收请求,调用GmesFileService接口将服务器资源以流的形式发送给浏览器。实现类中通过相对路径定位模板文件,设置HTTP响应头(包括文件名编码处理),最后使用IOUtils将文件流拷贝到响应输出流完成下载。整个过程考虑了中文文件名乱码、资源自动关闭等问题,并提供了异常处理和日志记录。
2025-10-24 10:00:37
269
1
原创 开发小笔记Lombook ,Swagger @Resource/@Autowired/StringUtils.isNotBlank/@Transcational传播行为
本文总结了Java开发中的关键知识点:1.依赖注入推荐构造器注入(final字段更安全);2.事务管理需注意异常处理范围;3.空指针异常处理建议使用StringUtils.isNotBlank等工具;4.集合操作推荐Set去重;5.Oracle常用字段类型及索引创建;6.Lombok简化开发的常用注解;7.Swagger接口文档标注方法。文章还涉及循环依赖的解决方案和链式编程等实用技巧。
2025-10-23 17:41:51
461
1
原创 Excel导出功能的实现
摘要:本文介绍了改制品对照表导出功能的实现方案。通过Controller接收导出请求参数(文件类型、查询条件、任务ID),使用PackReformContrastExporter导出器构建Excel文件。导出器继承AbstractAsyncExcelExporter,实现表头设置(含改制工单号、产品编码等10个字段)和分页数据查询(基于MybatisPlus的page方法)。系统支持导出进度条显示,并将生成的文件存储到MinIO。异常处理机制确保导出失败时返回错误信息,完整实现了从查询到文件导出的业务流程。
2025-10-23 10:00:00
259
2
原创 真实企业级开发流程,完成经典需求分页查询 ,导出功能
本文分享了企业级Java开发中基础查询与导出功能的实现过程。作者以PACK改制对照表为例,详细讲解了从Oracle表结构设计、Entity实体类映射,到分页查询和导出功能的完整开发流程。重点内容包括:1)规范化的表结构设计;2)使用Lombok、MyBatisPlus和Swagger注解的实体类实现;3)分页功能实现(Controller、Service、Mapper三层架构);4)数据传输对象DTO的设计与转换。文章特别强调了企业开发中的规范要求,如字段命名、继承体系、查询条件构造等,并提供了两种实现方式
2025-10-22 15:29:26
988
1
原创 MyBatis-Plus,满足企业级使用
MyBatis-Plus是一款基于MyBatis的增强工具,旨在简化开发流程。它提供了丰富的功能:自动CRUD操作(无需编写Mapper.xml)、Lambda表达式条件构造器、自动生成主键(支持雪花算法)、代码生成器(快速生成实体类、Mapper、Service等)。此外还包含分页查询、乐观锁、逻辑删除、自动填充字段等实用功能。通过继承BaseMapper和IService接口,开发者可直接调用内置方法实现数据库操作,大幅减少样板代码。MyBatis-Plus支持注解配置(如@TableName、@Tab
2025-10-22 11:05:39
1514
1
原创 Geega实习经历
本文摘要介绍了MES系统开发环境的搭建与关键配置,包括JDK17安装、IDEA配置、Maven环境搭建(3.8.1版本)、Git版本控制及Swagger调试工具使用。重点阐述了MES系统的模块化架构设计,包含核心模块(应用层、基础模块)、业务功能模块(生产执行、质量管理等)和辅助模块(配置管理、任务调度等)。详细说明了各控制器功能,如审计日志、用户管理、数据导入等,并介绍了系统采用的Redis缓存、数据库连接池等技术配置。全文呈现了一个典型的微服务架构制造执行系统的完整技术方案。
2025-10-21 17:48:04
623
原创 苍穹外卖:包通俗易懂, 用图片来解释项目结构,一定有收获!!!
本项目采用模块化结构设计,包含sky-common(常量/工具类模块)、sky-pojo(数据对象模块)和sky-server(业务处理模块)。核心功能包括登录校验、数据操作、消息通知等,通过JWT、拦截器实现安全验证,使用MyBatis进行数据库操作。项目包含异常处理、AOP切面编程、任务调度等功能模块,采用标准化的DTO数据传输和VO视图对象,并通过WebSocket实现服务端主动通知。各模块职责明确,包含常量定义、工具类封装、业务逻辑处理等分层设计,通过pom.xml管理项目依赖,是一个典型的企业级J
2025-08-10 17:47:33
591
1
原创 四大必会经典算法排序:快速,选择,冒泡,插入 排序
本文介绍了四种常见排序算法的Java实现:1)快速排序通过选择基准数将数组分区并递归排序;2)选择排序通过多次比较交换找到最小值依次排序;3)冒泡排序通过相邻元素比较将最大值"冒泡"到数组末端;4)插入排序通过将元素插入已排序部分的正确位置来完成排序。每种算法都提供了完整的Java代码实现,包括数组初始化、排序过程及结果输出。这些排序算法的时间复杂度从O(n^2)到平均O(n log n)不等,适用于不同规模的数据排序需求。
2025-08-06 20:50:45
127
1
原创 Linux(系统背景,服务器安装(CentOs 社区版),虚拟机 VMWare WorkStation远程连接服务器 SSH Secure Shell 安全外壳协议,常用命令,项目部署(Nginx))
本文介绍了Linux系统部署项目的两种方案(Linux/Docker)和主流操作系统特点。重点讲解了Linux系统安装(物理机/虚拟机)、常用命令(目录/文件操作)、软件安装(JDK/MySQL/Nginx)和项目部署流程。包括:1)Linux目录结构与基础命令;2)JDK环境配置与MySQL安装步骤;3)前后端项目部署方法(Nginx配置、jar包运行);4)远程连接服务器操作。通过FinalShell等工具实现服务器管理,详细说明了从环境搭建到应用部署的全流程,为开发者提供了一套完整的Linux项目部署
2025-07-27 10:00:00
1180
1
原创 登录校验 Filter 过滤器 - Interceptor 拦截器- 区别
摘要:Java Web中的过滤器和拦截器都是请求拦截机制。过滤器(Filter)是Java Web三大组件之一,通过实现Filter接口并配置拦截路径来拦截所有资源请求,常用于登录校验、编码处理等通用功能。拦截器(Interceptor)是Spring框架提供的机制,通过实现HandlerInterceptor接口来拦截Spring环境中的控制器方法调用。两者主要区别在于:1)过滤器拦截所有资源,拦截器只拦截Spring环境资源;2)过滤器基于Servlet规范,拦截器基于Spring框架。过滤器在Tomc
2025-07-17 15:50:30
998
1
原创 登录校验(会话技术(Cookie,Session,JWT),拦截技术(Filter过滤器,Interceptorl)
【摘要】登录校验是Web开发中确保用户身份合法性的关键机制。由于HTTP协议的无状态特性,需借助会话跟踪技术实现状态保持。主要技术包括:1)Cookie(客户端存储),但存在跨域限制和安全隐患;2)Session(服务端存储),面临集群环境同步问题;3)JWT令牌技术(主流方案),通过自包含的加密字符串实现跨平台认证,包含Header、Payload、Signature三部分,支持自定义数据存储和数字签名防篡改。JWT通过Base64编码生成字符串,配合拦截器实现统一校验,具有无状态、支持集群、减轻服务器压
2025-07-17 15:11:50
989
1
原创 Mybatis
MyBatis入门指南:简化JDBC持久层开发 本文介绍了如何使用MyBatis简化JDBC开发,实现数据库操作。主要内容包括: 创建SpringBoot项目并配置数据库连接 通过@Mapper注解创建持久层接口 使用注解方式实现CRUD操作 配置MyBatis日志输出 对比JDBC与MyBatis的差异 介绍数据库连接池类型及切换方法 XML映射文件的配置与使用 properties与yml配置文件的格式差异 核心优势:MyBatis通过注解和XML映射简化SQL操作,提供预编译安全机制,支持多种连接池,
2025-07-09 08:15:00
1257
1
原创 MySQL安装概述环境,DDL,DCL,DML,DQL,
MySQL数据库安装与操作摘要 本文详细介绍了MySQL的安装配置和基本操作流程。主要内容包括: MySQL版本选择(企业版/社区版)及环境变量配置 数据库服务启动与连接方法(net start/stop命令) SQL语句分类(DDL、DML、DQL、DCL)及常用操作示范 表结构设计与CRUD操作示例 JDBC编程实现数据库连接和操作 预编译SQL与静态SQL的区别及防注入措施 文章涵盖了从MySQL安装到Java程序操作的完整流程,重点讲解了表设计规范、SQL语句编写和JDBC编程实践,并强调了预编译S
2025-07-07 21:51:01
1125
1
原创 后端Web开发(spring boot入门,HTTP请求-响应,三层架构,IOC容器,DI依赖注入)
SpringBoot Web开发摘要 本文介绍了Web服务架构基础(B/S、C/S)和SpringBoot Web开发的核心内容。主要内容包括:SpringBoot与Spring的关系(自动装配、约定大于配置);创建SpringBoot工程的步骤及简单控制器实现;HTTP协议特点及请求/响应处理;Spring三层架构(Controller、Service、DAO)及其解耦方式;IOC控制反转与DI依赖注入的实现(三种注入方式及多Bean解决方案)。通过用户信息案例展示了文件读取、JSON响应和分层架构的应用
2025-07-07 09:31:35
1090
2
原创 详细介绍:什么是Maven ,安装配置maven,生命周期,Junit 单元测试框架 ,依赖爆红出错一招解决
Maven是Apache开源的一款Java项目管理工具,主要用于依赖管理、项目构建和标准化开发。其核心功能包括:通过坐标(groupId、artifactId、version)管理jar包依赖;支持编译、测试、打包等标准化生命周期;提供本地仓库、中央仓库和私服的资源管理。配置需设置本地仓库路径、阿里云镜像源和环境变量。JUnit单元测试可通过@Test注解实现,配合断言验证业务逻辑,需注意测试覆盖率和边界情况。常见问题如依赖爆红可通过删除.lastUpdated文件解决。Maven统一了项目结构,提升了开发
2025-07-06 08:15:00
1048
1
原创 身为后端程序员·借点AI编程,对前端全面正常认识:HTML,CSS,JavaScript + Vue3(v-for-bind-if-else-show-model-on)+Ajax/Axios工具
本文摘要: HTML网页开发技术指南,涵盖HTML结构、CSS样式、JavaScript交互及Vue3框架应用。内容包括:1)HTML表单元素与标签使用;2)CSS选择器与样式控制方法;3)JavaScript基础语法、DOM操作与事件处理;4)Vue3特性与常用指令(v-for、v-bind等);5)Ajax异步请求与Axios工具应用;6)前端开发完整示例(Tlias智能系统界面)。重点讲解了网页三要素(结构-表现-行为)的协同工作,以及现代前端框架Vue3的数据绑定和组件化开发模式。
2025-07-05 08:15:00
635
1
原创 网络编程(Bs/Cs架构,三要素(IP,端口号,协议),IPV4/6,TCP/UDP,UUID,IO流在网络上发送数据)
网络编程是指通过通信协议实现不同计算机间的数据传输,主要分为单机模式和网络联机模式。Java使用java.net包实现常见的C/S(客户端/服务器)和B/S(浏览器/服务器)架构。网络通信三要素包括IP地址(IPv4/IPv6)、端口号(0-65535)和协议(TCP/UDP)。TCP面向连接、可靠但速度慢,适合邮件等场景;UDP无连接、速度快但不稳定,适用于视频通话。Java通过Socket类实现TCP通信,DatagramSocket类实现UDP通信,支持单播、组播和广播三种方式。此外,还介绍了文件上传
2025-07-04 09:17:29
1080
1
原创 多线程&JUC(三种实现方式,成员方法,生命周期,死锁,阻塞队列,同步代码块,lock,六种状态,七参数)
Java多线程编程核心概念与实践 摘要:本文系统介绍了Java多线程编程的核心概念,包括进程与线程的区别、多线程实现方式(继承Thread类、实现Runnable/Callable接口)、线程生命周期管理(新建、就绪、运行、阻塞、死亡)。重点讲解了线程同步机制(synchronized同步代码块、Lock锁)、经典的生产者-消费者模式实现,以及线程池的7个关键参数配置。文章还涉及死锁预防、JUC工具包使用、CPU密集型与I/O密集型任务的线程池优化策略,并简要提及volatile、CAS等并发编程高级特性,
2025-07-03 21:00:55
619
1
原创 详细分析:IO流(字符/字节/缓冲/转换/序列化/打印/解压缩 /网络爬虫/随机点名器)!!!!!!
本文摘要: Java文件IO操作指南,涵盖基础流、缓冲流、序列化等核心内容。主要内容包括:1) 字节流和字符流的基本读写操作;2) 文件拷贝的多种实现方式及性能优化;3) 字符编码处理与乱码解决方案;4) 序列化与反序列化的实现及注意事项;5) 压缩与解压缩文件操作;6) 常用工具包(commons-io、hutool)的使用;7) 属性文件(Properties)的读写应用。文章还涉及网络爬虫、随机点名器、用户登录注册等实际案例,并提供文件加密解密、游戏存档等实用技巧。
2025-07-02 20:16:10
343
1
原创 总结分析:异常(Error Exception(RuntimeExeption 其他异常))+异常的抛出(throw throws try catch finally)
【Java异常分类与处理摘要】Java异常分为Error(系统级错误)和Exception(程序异常)。Exception又分为: 1️⃣ 运行时异常(RuntimeException):如空指针、数组越界等,编译不检查但需逻辑规避; 2️⃣ 受检异常(CheckedException):如IO、SQL异常,强制要求try-catch或throws处理; 3️⃣ 自定义异常:继承Exception/RuntimeException实现业务异常。 处理机制包括try-catch-finally捕获、throw
2025-07-02 20:07:17
929
1
原创 详细解释代码实现:Map双列集合:HashMap,TreeMap,LinkedHashMap
摘要:双列集合以键值对形式存储数据,Map是其顶级接口。主要操作包括添加(put)、删除(remove)、查询(containsKey/Value)等。遍历方式有三种:键找值、键值对对象遍历和Lambda表达式。HashMap基于哈希结构,无序高效;LinkedHashMap保持插入顺序;TreeMap通过红黑树实现排序。统计案例展示了Map的典型应用,源码分析揭示了HashMap和TreeMap的不同实现机制:前者依赖哈希值,后者基于比较器。实际应用中,需根据有序性、排序需求选择合适实现类,通常HashM
2025-06-30 16:32:57
373
原创 常用算法(冒泡,选择,插入,快速,二分查找,Arrays工具类,四道递归经典例题)
文章摘要:本文系统介绍了常见查找与排序算法的关键实现要点。查找部分涵盖顺序查找、二分查找和分块查找;排序部分详细讲解了冒泡、选择、插入和快速排序的核心逻辑,重点包括循环控制、基准值选择和递归实现。特别强调了冒泡排序的"泡泡"特性、快速排序的基准数划分策略,以及递归算法的出口条件。文章还提供了斐波那契数列、猴子吃桃等经典递归问题的解决思路,最后介绍了Arrays工具类的常用方法及其在对象排序中的应用。所有算法均包含关键代码片段和实现细节说明。
2025-06-26 10:13:27
734
2
原创 经典常用API(Math,System,Runtime,Object和Objects,BigInteger和BigDecimal,正则表达式)
本文摘要: Java常用API总结,涵盖Math类(绝对值、取整、随机数等数学运算),System类(时间获取、数组拷贝等系统操作),Runtime类(系统环境信息获取),Object和Objects类(对象操作与比较),BigInteger和BigDecimal类(大整数运算与精确小数计算),正则表达式应用(数据校验与爬虫)。同时介绍了日期格式化与自动装箱/拆箱机制,以及通过ArrayList实现动态数据收集。文章通过代码示例演示了各类API的实际应用场景。
2025-06-25 21:57:32
364
1
原创 Java基础课程设计学生管理系统:控制台显示(大一大二),源码和详细分析!!!!
删除功能:键盘录入删除的id ,提示存在删除成功/不存在回菜单。修改功能:键盘录入修改 id ,提示存在修改成功/不存在回菜单。查询功能:打印所有学生信息,不存在,请添加后再查询。学生类:id ,name,age,address。添加功能:id唯一,键盘录入。
2025-05-22 21:10:51
303
1
原创 五大Java基础语法:if-else,switch ,for,while,break/continue 巨经典的例题合集,稳扎稳打,复习巩固 !!!
/循环// 打印1-100// 自增i++;}*/// 区别 for /while for: 知道 循环的次数和范围(i=1;i<=10;i++) 走十圈 while:只知道 循环结束范围多大(i<4)珠穆朗玛山高度// 折纸 2*ncount++;System.out.println( "折纸"+count+"次");*/// 回文数 随意输入 可以得出int temp=x;记录倒过来的结果int num=0;while(x!=0){x=x/10;
2025-05-15 21:32:17
781
2
原创 MVCC,主从复制,分库分表(垂直/水平),InnoDB结构
MVCC(多版本并发控制)通过版本链、UndoLog和ReadView的协作,实现了高效的并发控制。主从复制通过主库的binlog传输到从库,实现数据同步,提高系统可用性和性能。分库分表通过垂直和水平拆分,解决单数据库的IO和CPU瓶颈问题。InnoDB的逻辑存储结构包括表空间、段、区、页和行,内存架构则包括Buffer Pool、Adaptive Hash Index、Change Buffer和Log Buffer,优化了数据操作和查询效率。
2025-05-12 20:14:02
652
2
原创 简单讲解:数据库锁(全局锁,表级锁(表锁,元数据锁,意向锁),行级锁)作用和处理场景
开启事务begin;#两个客户端执行 查询语句没问题,自动加了元数据锁#如果没有提交 一个人查询 另一个人不可以 alter 修改#提交事务commit;
2025-05-11 16:38:09
1263
2
原创 3张表解释MySQL中(约束,多表查询,函数)
约束是:用于限制表中数据的规则(不能为空,唯一,必须大于一个值,联系其他表也有)简单来说,一条语句 查到 两条表的数据(两个表有关系)函数:通过函数方式得到 你需要的结果。阻止不符合规则的操作。
2025-05-10 16:14:54
496
5
原创 详细解释:什么是MySQL索引(数据结构 索引分类 索引语法 性能分析 索引失效 设计原则)
帮助MySQL的没有索引优点: 如果没有索引,就是。
2025-05-09 20:40:05
1703
2
原创 通俗易懂:MySQL事务(操作,acid,并发事务,隔离级别)
事务A读同一条记录两次 --中间被 事务B 更改了 --- 数据不同(A读B已提交的数据)peatable read)MySQL默认级别:解决了脏读/不可重复读,幻读(mvcc)事务A 查询数据行不存在,要添加数据行时,事务B 又添加入了一条(记录行数不同)(read uncommitted):都会出现 脏读,不可重复读,幻读 (没用):事务完成,张三2k ,李四2K,无论怎么转,2K+2K=4K,总数不变;银行转账(开始事务---操作-- 可以回滚 -提交事务): 事务A 读到 未提交事务B。
2025-05-08 20:10:48
496
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅