自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 一行搞定:Git 提交规范速查

本文介绍了Git提交信息的规范与技巧,包含提交目的、自动生成日志等作用,并提出了7字口诀和场景示例(如[feat]新增功能、[fix]修复bug等)。规范要求提交信息用英文小写、不加句号、50字符内简洁描述,强调格式统一和类型明确。附速记表帮助快速记忆常用提交类型,使版本管理更高效。

2025-10-31 13:58:47 381

原创 发布策略讲解:蓝绿、灰度、滚动三种常见发布策略和功能开关、AB、影子等其他发布方式

灰度发布(又称金丝雀发布)是一种渐进式软件部署策略,其概念源于矿井用金丝雀检测毒气的原理。通过小范围试运行新版本,确保稳定性后再全量发布,从而降低系统风险。常见部署模式包括金丝雀发布、滚动发布和蓝绿发布等,弹性负载均衡(ELB)技术为这些部署方式提供了关键支撑。企业级应用可通过网关层实现精细化的灰度发布方案设计。

2025-10-31 09:14:36 360

原创 芋道源码 vs RuoYi-Vue-Plus:全解两大RuoYi衍生项目的抉择

芋道源码(ruoyi-vue-pro)和Dromara社区的RuoYi-Vue-Plus是RuoYi框架的两个主要衍生版本。芋道源码定位企业级全场景解决方案,集成了工作流、多租户等复杂功能,但文档付费且学习曲线陡峭;RuoYi-Vue-Plus则专注框架增强,提供免费文档和更平滑的升级路径。选择建议:复杂业务选芋道源码,轻量级开发或新手团队更适合RuoYi-Vue-Plus。决策前建议体验两个Demo,根据项目需求和团队能力选择最适合的方案。

2025-10-30 08:35:32 1050

原创 SpringBoot响应封装:Graceful Response vs 自定义通用响应类选型指南

SpringBoot项目统一响应格式的两种实现方案对比:开源组件Graceful Response与自研通用响应类。Graceful Response提供开箱即用的统一响应封装和全局异常处理,减少样板代码,适合追求快速集成的团队;而自研方案通过Result类实现高度定制化,灵活性更强但需自行维护。选择时应权衡开发效率与长期维护成本,小型项目推荐Graceful Response,复杂项目可考虑自研方案。

2025-10-30 08:34:29 1235

原创 SQL索引失效的常见场景及优化指南

索引是数据库优化的关键,但在某些场景下会失效导致全表扫描。常见失效情况包括:对索引字段使用函数/表达式、隐式类型转换、违反最左前缀原则、OR连接非索引字段、使用否定操作符、LIKE以%开头、索引字段运算、SELECT *导致无法覆盖索引、数据分布不均以及NULL值处理不当。优化方法包括调整SQL写法、拆分查询、使用覆盖索引等。实际开发中需结合执行计划分析,合理设计索引以避免失效。

2025-10-29 09:15:18 1217

原创 AI自动化协作体系中的关键概念解析

本文系统梳理了AI交互技术的发展脉络。从早期单一的User Prompt发展到System Prompt,解决了AI人设缺失问题;进而引入AI Agent概念,通过注册工具实现任务自动化,但面临格式标准化挑战。Function Calling的提出统一了工具调用规范,而MCP协议则进一步实现了工具服务的标准化托管与调用。文章通过"腹痛查询"示例展示了各组件协作流程,指出System Prompt、Agent、Function Calling和MCP并非替代关系,而是共同构成了AI自动化协作体系。

2025-10-29 09:14:32 769

原创 Docker 命令自动补全:临时与持久化配置指南

本文介绍了如何启用Docker命令行的自动补全功能。主要内容包括:临时启用方法(直接加载补全脚本或手动下载)、持久化配置(写入.bashrc或.bash_profile文件)、以及恢复默认状态的操作。文章还对比了Bash和Zsh两种Shell环境下的配置差异,并提供了系统级配置和手动安装补全脚本的补充说明。通过简单的命令即可显著提升Docker命令输入效率,适合不同使用场景的开发者参考。

2025-10-28 08:55:53 725

原创 Linux Namespace详解:原理、类型与应用

Linux Namespace是内核提供的轻量级资源隔离机制,实现了操作系统级虚拟化。它从2002年开始发展,目前包含8种类型,分别隔离文件系统、主机名、进程通信、进程ID、网络、用户权限、cgroup视图和系统时间等资源。Namespace通过clone()和unshare()系统调用创建,是Docker等容器技术的核心基础,能够实现高效的应用沙箱环境。虽然存在非完全虚拟化、安全性等局限,但配合cgroups等技术,Namespace仍是Linux容器生态的关键组件,为微服务隔离、网络虚拟化等场景提供支持

2025-10-28 08:53:18 895

原创 云计算服务模式全解析:IaaS, PaaS, SaaS, DaaS 与 XaaS

云计算是一种通过互联网提供按需计算服务的模式,采用"云-管-端"架构,由云端资源、网络和终端设备组成。其服务层级包括基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)和数据即服务(DaaS)。IaaS提供虚拟化硬件资源,适合需要高度定制化的场景;PaaS提供开发平台,简化应用部署;SaaS提供即用型软件,实现零维护;DaaS则通过API交付数据价值。各服务模式在控制权、技术门槛和定制化能力上存在差异,用户可根据需求选择适合的云服务类型及部署方式(公有云、私有云或混合云)。

2025-10-27 09:13:45 1935

原创 解决wget下载redis报unable to resolve host address ‘download.redis.io’的问题

本文提供了解决系统无法解析 download.redis.io 域名问题的7种方法:1)检查DNS解析并更换DNS服务器;2)测试网络连接;3)使用IP地址直接下载;4)改用curl命令下载;5)检查系统时间设置;6)排查防火墙限制;7)尝试镜像站点下载。建议依次尝试这些方案,若仍无法解决需联系网络管理员检查配置。

2025-10-27 09:11:42 375

原创 MySQL 字符集配置详解:确保多语言数据正确存储与显示

MySQL字符集配置解析 本文详细解析了MySQL中字符集配置的关键要点,重点介绍了针对客户端、mysql命令行工具和服务器的配置段。核心配置包括default-character-set=utf8和character-set-server=utf8,确保数据库正确处理中文等多语言数据。文章特别强调了配置文件中短横线(-)和下划线(_)的等效性,并建议统一使用短横线风格。同时区分了配置选项与系统变量的不同,前者用于启动配置,后者用于运行时查询和修改。正确的字符集配置是避免数据存储和显示乱码的基础。

2025-10-26 09:14:10 767

原创 解决Docker磁盘空间不足导致MySQL启动失败

Docker容器磁盘空间不足导致MySQL临时表空间文件无法增长。解决方案包括:1)立即清理Docker磁盘空间(prune命令);2)删除特定容器和资源;3)调整存储限制。长期方案:1)启动MySQL时限制临时表大小;2)使用数据卷持久化存储;3)监控磁盘使用。紧急恢复步骤为先清理空间再重启容器,若问题持续需检查宿主机磁盘。定期执行docker system prune可预防此类问题。

2025-10-26 09:12:36 285

原创 Tomcat 官方发行包与 Docker 镜像的 webapps 目录差异解析

Tomcat官网ZIP包与Docker镜像存在差异:官网包的webapps包含默认应用(如ROOT、manager等),而Docker镜像(9.0.30+)的webapps为空,默认应用移至webapps.dist。此变更是出于安全与镜像优化考虑,用户可通过移动文件或Dockerfile自行启用。生产环境建议保持webapps纯净,仅部署必要应用,避免暴露风险。两者差异主要服务于不同场景(开发便捷性 vs 生产安全性)。

2025-10-25 11:28:26 977

原创 Spring Boot 2.6+ 整合 PageHelper 启动报错:循环依赖解决方案全解析

Spring Boot 2.6+应用启动时出现PageHelper循环依赖问题,建议采用两种解决方案:1)排除自动配置并手动配置PageHelper(推荐),通过创建配置类并设置拦截器彻底解决循环依赖;2)临时方案允许循环引用(仅限紧急情况)。不推荐版本降级,因其会掩盖实质问题。问题根源在于Spring Boot 2.6+默认禁止循环引用,而PageHelper自动配置与数据源配置产生循环依赖。最佳实践是采用手动配置方式,既解决问题又保持代码规范。

2025-10-25 11:25:23 1196 2

原创 SaaS系统多租户架构设计与核心技术实践

《SaaS系统多租户架构设计与核心技术实践》一文系统阐述了SaaS模式的核心技术架构。文章指出,多租户架构是SaaS实现低成本、高效率服务的核心,通过单一应用实例服务多个租户并确保数据隔离。重点分析了三种数据隔离方案:独立数据库(最高隔离性)、独立Schema(平衡选择)及字段隔离(最优成本),并对比了其优缺点与适用场景。此外,文章还探讨了单租户架构及其特定应用场景,以及结合两者优势的混合架构方案。最终强调,架构选择需基于业务需求、成本及合规要求,在隔离性、定制化与成本效率间取得平衡。

2025-10-24 17:13:32 1676

原创 SaaS多租户架构实践:字段隔离方案(共享数据库+共享Schema)

本项目演示了SaaS模式下基于字段隔离的多租户架构实现方案。采用MyBatis-Plus的TenantLineInnerInterceptor拦截器,通过自定义MyTenantLineHandler实现租户ID自动注入SQL。核心组件包括:1)租户上下文(TenantContext)使用ThreadLocal存储租户ID;2)过滤器(TenantFilter)从请求头提取租户ID;3)MyBatis配置类集成多租户拦截器。实现了共享数据库+共享Schema场景下的数据隔离,仅作技术验证使用。

2025-10-24 16:58:59 826

原创 Docker基础篇08:Docker常规安装简介

本文介绍了使用Docker安装Tomcat、MySQL和Redis的详细步骤。主要内容包括:通过docker search和pull命令获取镜像,使用docker run启动容器并进行端口映射,解决Tomcat访问问题和MySQL字符集编码问题,以及配置Redis容器数据卷实现数据持久化。重点讲解了MySQL实战版安装中的容器数据卷挂载方法,确保数据安全。文章通过图文并茂的方式,完整呈现了从镜像拉取到容器运行的完整流程,并针对常见问题提供了解决方案。

2025-09-19 18:04:49 1476

原创 Docker基础篇07:Docker容器数据卷

本文介绍了Docker容器卷的使用方法及常见问题解决方案。重点讲解了如何通过--privileged=true参数解决挂载目录权限问题,详细说明了数据卷的作用、特点及实际应用案例。内容包括宿主机与容器间的数据共享、读写规则配置(rw/ro)以及容器间卷的继承方法(volumes-from)。通过具体命令示例,展示了数据卷在容器持久化存储中的关键作用,帮助读者掌握Docker数据管理的核心技巧。

2025-09-18 15:04:02 734

原创 Docker基础篇06:本地镜像发布到私有库

本文介绍了将本地Docker镜像发布到私有库的完整流程。主要内容包括:1)下载并运行Docker Registry私有库服务;2)通过案例演示如何创建自定义镜像(Ubuntu安装ifconfig命令);3)镜像标签修改、HTTP传输配置和推送私有库;4)验证私有库镜像并拉取运行。整个过程涉及容器卷映射、commit提交镜像、修改daemon.json配置等关键操作,适用于企业内网构建私有镜像仓库的场景,解决了公共仓库访问慢和安全性问题。通过图文详细展示了每个步骤的操作命令和验证方法。

2025-09-16 14:44:24 1298

原创 Docker Push 常见报错及解决方案汇总

本文针对Docker推送镜像时常见的错误提供了详细解决方案。对于HTTPS错误,可通过配置insecure-registries或为registry配置SSL证书解决;对于连接拒绝错误,建议检查registry服务状态、网络连接、Docker配置和认证状态。文章包含具体操作命令和适用场景说明,推荐测试环境使用insecure-registries配置,生产环境必须配置HTTPS。同时提供了网络连通性测试、防火墙设置检查等高级排查方法,并附错误场景示例和解决方案对照表。

2025-09-16 14:40:46 1280

原创 Docker基础篇05:本地镜像发布到阿里云

本文介绍了将本地Docker镜像发布到阿里云的完整流程。首先通过docker commit命令生成新镜像,指定作者和说明信息。然后在阿里云开发者平台创建个人实例、命名空间和公开的镜像仓库。接着使用管理界面提供的脚本完成登录、打标签和推送操作。最后展示了如何从阿里云下载镜像到本地。整个过程涵盖了镜像生成、云平台配置、推送和拉取的关键步骤,并强调了仓库类型必须设置为“公开”;以避免认证错误。

2025-09-15 16:41:03 557

原创 Docker基础篇04:Docker镜像

Docker镜像是一种轻量级可执行软件包,包含运行应用程序所需的所有内容。它采用分层结构(基于UnionFS联合文件系统),底层为只读的bootfs和rootfs,顶部为可写的容器层。这种设计实现了资源共享和高效复用。通过docker commit命令可以从容器创建新镜像,案例演示了如何在Ubuntu镜像中安装vim并提交为新镜像。镜像分层机制允许通过扩展现有镜像来构建新镜像,类似于面向对象编程中的继承概念。

2025-09-15 16:39:43 910

原创 Docker基础篇03:Docker常用命令

结合我们Git的学习心得,大家猜猜是否会有docker commit /docker push??【所有命令示意图】命令英文描述中文描述attach当前 shell 下 attach 连接指定运行镜像build通过 Dockerfile 定制镜像commit提交当前容器为新的镜像cp从容器中拷贝指定文件或者目录到宿主机中create创建一个新的容器,同 run,但不启动容器diff查看 docker 容器变化events从 docker 服务获取容器实时事件exec。

2025-09-12 17:08:56 991

原创 解决Ubuntu中apt-get -y安装时弹出交互提示的问题

参数自动确认安装,但安装过程中仍弹出时区选择提示。),这两个城市代表中国标准时间(CST, UTC+8)。此命令会直接使用默认时区(UTC),跳过所有交互提示。(亚洲) → 后续会提示选择城市(如。无法自动跳过交互式配置步骤。在Ubuntu系统中执行。)需要配置系统时区,而。

2025-09-12 14:32:29 428

原创 Docker基础篇02:Docker安装

本文介绍了Docker的基本概念、架构及在CentOS7上的安装步骤。Docker由镜像(只读模板)、容器(运行实例)和仓库(镜像存储)三部分组成,采用C/S架构,通过namespace和cgroup实现资源隔离与限制。与虚拟机相比,Docker更轻量级且启动更快。安装步骤包括检查系统版本、卸载旧版本、安装gcc工具、配置稳定镜像仓库等。文章还对比了容器与虚拟机的区别,并解释了Docker的工作原理。

2025-09-10 08:42:39 1165

原创 Docker基础篇01:Docker简介

Docker是一种容器虚拟化技术,通过将应用程序及其运行环境打包成镜像,实现跨平台运行。与传统虚拟机相比,Docker更轻量、启动更快,解决了环境不一致和部署繁琐的问题。学习Docker需具备Spring Boot、Redis、MySQL等基础技术栈。课程分为基础篇和进阶篇,适合不同水平的开发者。Docker的核心目标是“一次镜像,处处运行”,极大简化了运维部署流程,是现代化开发的重要工具。

2025-09-10 08:42:01 1004

原创 Docker教程简介

本文系统介绍Docker容器化技术及其生态体系,涵盖基础到高级内容。作为云原生时代的核心技术,Docker与K8s已成为主流开发必备技能。文章配套2022年视频教程,但针对当前技术发展进行了内容更新,确保知识点与时俱进。学习路径建议掌握Docker后继续学习K8s,如同Spring Boot到Spring Cloud的进阶过程。内容包含示意图说明和实例解析,力求通俗易懂且全面覆盖,适合不同学习偏好的开发者。

2025-09-09 09:49:20 366

原创 Linux包管理工具对比:yum vs dnf——性能与演进的全面解析

Linux系统中的yum和dnf均为RPM包管理工具,主要用于Red Hat系发行版。yum(2003年)因效率问题逐渐被dnf(2015年)取代,后者采用更快的libsolv依赖解析算法,支持并行下载和自动清理,性能显著提升。RHEL 8+默认使用dnf,但保留yum命令兼容层。核心差异包括解析速度、内存占用和扩展性,dnf在复杂依赖场景下表现更优,是未来技术方向,而旧系统仍需yum。两者基础命令相似,但dnf更适合现代需求。

2025-09-09 08:46:32 1020

原创 Skopeo 工具介绍与 CentOS 7 安装指南

Skopeo是一款轻量级的容器镜像管理工具,支持镜像检查、复制、删除和同步等功能,无需守护进程即可操作。本文详细介绍了在CentOS 7上安装Skopeo的三种方法(yum安装、容器工具仓库安装和源码编译),并提供了常用操作示例,包括检查镜像、复制镜像和同步镜像等。相比Docker,Skopeo资源占用更低且支持直接仓库操作,适合CI/CD和自动化场景。最后还解答了证书认证、存储空间等常见问题,是高效的容器镜像管理解决方案。

2025-09-08 14:36:09 430

原创 VMware 中 CentOS 7 设置静态 IP

本文详细介绍了在VMware虚拟机中为CentOS 7配置静态IP的步骤,重点区分了NAT、桥接和主机三种网络模式的差异。操作包括:1)确认VMware网络模式及对应网关;2)修改ifcfg-ens33文件设置静态IP、子网掩码、网关和DNS;3)重启网络服务并验证配置;4)检查VMware虚拟网络编辑器确保IP与子网匹配。常见问题如网关不通或DNS失效,需检查网关地址、防火墙状态及DNS配置。通过规范设置参数并保持与VMware网络环境一致,可确保静态IP稳定生效。

2025-09-08 14:33:10 1133

原创 CentOS 7 设置静态 IP 地址

在CentOS 7中设置静态IP地址有两种主要方法:1)修改ifcfg配置文件(推荐),需编辑/etc/sysconfig/network-scripts/ifcfg-网卡名,设置BOOTPROTO为static/none并配置IP、子网掩码、网关和DNS,然后重启网络服务;2)使用nmcli命令修改NetworkManager配置。常见问题包括网关/DNS配置错误、网卡名不匹配或防火墙干扰,可通过ping测试、检查配置和临时关闭防火墙排查。两种方法均需根据实际网络环境调整参数。

2025-09-08 14:32:22 806

原创 CentOS 7 出现 “Could not resolve host“ 错误的修复方案

CentOS 7 执行yum命令时出现Could not resolve host: mirrorlist.centos.org错误,主要原因是官方仓库已停止维护(EOL)或DNS配置问题。解决方案包括: 更换国内镜像源(如阿里云),修改/etc/yum.repos.d/CentOS-Base.repo并清理缓存; 检查DNS配置,添加公共DNS(如8.8.8.8); 手动指定仓库URL或检查网络连接。若仍无效,建议升级至CentOS Stream或替代系统(如Rocky Linux)。

2025-09-08 14:31:10 927

原创 CentOS 7 快速检查软件包是否已安装的5种方法

本文介绍了在CentOS 7系统中检查软件包是否安装的5种方法:1)使用rpm -q查询具体包;2)通过yum list installed列出所有已安装包;3)用which检查命令路径;4)直接运行--version查看版本;5)使用repoquery工具。推荐组合使用rpm -q快速检查和yum list详细确认,并提供了完整的检查脚本示例,可快速判断gcc/g++等开发工具是否已安装。这些方法适用于软件安装前的环境检查工作。

2025-09-08 14:30:27 424

原创 禁用 VMware 中 Linux 系统的 “嘟嘟“ 报警声

本文介绍了两种禁用Linux系统“嘟嘟”报警声的方法:1.修改inputrc配置文件,取消set bell-style none的注释或设为visible;2.永久禁用PC扬声器驱动,通过blacklist pcspkr或alias pcspkr off命令实现。方法二更彻底适用于多数系统,方法一则适合需要保持系统完整性的用户。两种方案均能有效解决Shell操作时的刺耳报警声问题。

2025-09-08 14:29:31 423

原创 彻底禁用 CentOS 7.9 中 vi/vim 的滴滴声

在VMware虚拟机CentOS 7.9中禁用vi/vim提示音的方法:1)修改/etc/vimrc添加set visualbell等配置;2)通过终端设置禁用铃声或系统声卡驱动;3)调整VMware终端音频设置。推荐优先修改vim配置,无效时再排查终端或驱动问题。验证时在vim中触发铃声行为确认效果。

2025-09-08 14:27:42 364

原创 MyBatis-Plus中QueryWrapper与LambdaQuery的异同分析

MyBatis-Plus中的QueryWrapper和LambdaQuery核心差异在于查询条件的构建方式。QueryWrapper使用字符串指定字段,简单但缺乏类型安全;LambdaQuery通过Lambda表达式引用字段,具有编译时检查、IDE支持和重构友好等优势。两者在SQL生成和性能上无差别,但LambdaQuery在代码质量和开发体验上更优。建议新项目优先使用LambdaQuery,旧项目可逐步迁移,根据项目复杂度灵活选择最合适的查询构建方式。

2025-09-08 14:26:42 338

原创 IDEA开启并配置Services窗口(一个项目开启多个项目运行窗口并且显示端口)

本文介绍了在微服务架构下使用IDEA Ultimate 2025.2的Service窗口统一管理Spring Boot服务的操作步骤:首先通过View菜单打开Tool Windows中的Services窗口,然后点击Add Service添加Run Configuration Type为Spring Boot的服务配置,最后可实现对多个微服务模块的统一启动和关闭管理。该方法能有效解决微服务架构中模块多、管理复杂的问题。

2025-09-08 14:25:31 405

原创 HTTP报文结构深度解析

HTTP报文是客户端与服务器通信的核心载体,分为请求报文和响应报文。请求报文包含请求行(方法、URI、协议版本)、请求头(Host、User-Agent等)和可选的请求体(POST/PUT数据)。响应报文由状态行(状态码)、响应头和响应体(返回数据)组成。关键细节包括空行分隔、HTTP/2优化、分块传输和连接管理。通过开发者工具或cURL可调试报文,深入理解HTTP报文结构有助于优化Web通信和API调试。

2025-09-08 14:22:15 1249

原创 Spring Boot Banner

Spring Boot Banner是项目启动时显示的个性化标识,支持自定义文本、图片和动态内容。通过在resources目录下创建banner.txt文件,或实现Banner接口进行代码定制,开发者可以展示品牌标识、版本信息等内容。Spring Boot还支持通过AnsiColor等枚举类为Banner添加颜色效果。在线工具如ASCII生成器可辅助创建复杂图案,提升项目启动界面的美观度和辨识度。自定义Banner适用于品牌展示、版本管理等多种场景,是Spring Boot项目个性化的实用功能。

2025-09-08 14:20:27 1490

原创 IntelliJ IDEA 旗舰版 vs 社区版:完整功能对比指南

IntelliJ IDEA提供社区版和旗舰版两个版本,主要差异在于功能覆盖和授权模式。社区版免费开源,支持JVM语言和基础开发,适合学习和个人项目;旗舰版付费订阅,提供全栈语言支持、云服务集成、高级调试等专业功能,适合企业开发。选择建议:学习/个人项目选社区版,商业/团队开发选旗舰版。用户可先试用30天旗舰版再决定。

2025-09-08 14:18:31 1339

软件全周期模板.zip

压缩包内容:工作汇报相关模板、需求文档说明书模板、数据库设计模板、项目接口说明文档模板、测试用例模板、测试报告模板、安装部署文档模板、用户使用手册模板(后台、小程序)

2024-08-20

测试相关规章制度和文档模板

压缩包内容: 1、真实的测试用例文档 2、测试部门相关的规章制度文档:测试部考核指标、测试部日常工作规范、缺陷管理流程、缺陷管理制度等文档 3、测试人员相关的文档模板:需求评审会议纪要、提测邮件模板、测试计划、测试进度表、测试用例、功能/性能测试报告等模板

2024-08-07

个人简历Word模板+自我介绍PPT模板.zip

个人简历Word模板10套 自我介绍PPT模板4套 有需要的朋友请自取,如果我的模板帮助到你,别忘了点个赞+关注哦,感谢 /抱拳

2024-07-25

空空如也

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

TA关注的人

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