自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随-记的专栏

初来乍到

  • 博客(201)
  • 资源 (11)
  • 收藏
  • 关注

原创 emoji 表情符号全集

早在 1999 年,在日本的无线通信中就开始使用作为视觉情感符号,在日语中(絵文字/えもじ)读音即为 emoji。每个 emoji 表情对应一个 Unicode 字符,(The Unicode Consortium)来定义字符的中文描述,由这个网站对 emoji 进行描述表达,并允许大家按照对描述的理解,自由地去设计图案。我们在不同的操作系统[苹果/安卓]中,甚至不同的浏览器[Chrome/IE浏览器]中看到的同一个表情都是不太一样的,但是它们都表示相同的中文含义。

2023-04-15 17:22:14 14212 1

原创 正确的逛Github-寻找优秀的中文项目

作为一个程序员,Github是经常光顾的网站之一了。但是,目前 Github还没有专门针对中文的环境,无法直观地找到优秀的中文项目。一个偶然的机会,我发现有一个项目 GitHub-Chinese-Top-Charts,它通过 Github 的 Star 星标机制,帮我们筛选出一大批优秀的中文项目。很多之前收藏过的优秀项目,都在其中,让我觉得该项目的实用性和可信度还是很高的。但是,用的多了,发现也有弊端,榜单的内容不错,但是排版嘛。。。Github 默认的 README 文件基本是没有样式的,还有就是这个

2021-08-31 23:59:32 2973

原创 值得深入探索的软件架构

无论我们的项目简单还是复杂,是后台管理应用还是海量用户的高并发应用。我们都在时时刻刻与技术架构为伍,在不同的路上精进。科学与艺术计算机本质上是一门科学,工程师不断地利用这门科学创造现代化的世界,也在创造新的价值。我们以码农自居,却无时无刻不在打磨我们的代码,成为一个匠人。我们在代码中套用各种框架,使用多种设计模式,又一直在演进项目架构。有时候,我们可以自豪地表示,尽管它称之为计算机科学,但它通常是一门艺术。单体与微服务在很长一段时间,我们的应用一直都属于单体应用。因为它足够简单,不需要关注代码以外的

2021-07-06 23:37:22 1211 2

原创 PODAM - Java 对象随机数填充器-属性随机赋值 Mock bean

最近,一个需求让我们接触到了 PODAM,可以自动使用随机数据填充Java 对象原始属性。缘起编写代码过程中,测试代码的广覆盖,往往能保证代码的健壮性。完善的测试用例也能便于后期迭代开发。测试数据增删改查过程中,最常见的莫过于初始化一个对象,然后将其插入到数据库中。于是,下面的代码,就占用了测试代码的大部分篇幅:Street street = new Street();street.setNumber(12);street.setType((byte) 1);street.setName(

2021-06-30 18:52:10 2759

原创 log4j2 将特定级别 INFO 日志打印到文件

本文要解决的是如何将 mybatis 的 sql 日志打印到特定文件问题。业务场景在使用 mybatis-plus 的时候,我们有时需要将 SQL 打印到控制台,便于排查代码问题。Mybatis-plus 需要通过下面的方式开启控制台 SQL 日志打印:mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl看起来确实没问题,但是。日志仅仅只能打印到控制台,而在项目上线初期,我

2021-05-31 16:37:18 4057 1

原创 mybatis-plus 开启与关闭 SQL 日志打印

开启打印Mybatis-plus 需要通过下面的方式开启控制台 SQL 日志打印mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl对于 application.properties 文件,可以通过下面的方式关闭:mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl关闭

2021-04-13 19:36:33 51141 5

原创 JPA启示录-构建 JAP 基础工程

在“一无所有”的情况下,需要从下面几个方面考虑搭建一个基础项目。因素结论项目基本结构参考开源 Cola 的项目结构项目技术选型SpringBoot2 + JPA数据库选型MySQL 8.x项目部署Docker容器化项目启动使用 Mybatis 开发时,我们常常先创建好表,然后逆向工程,生成基础的增删改查代码。本次项目尝试采用 DDD 的领域驱动开发方式,着重关注领域模型,数据库表利用项目工程生成。基础建设一般在设计商业化系统的时候,都会考虑公共字

2021-03-31 21:57:42 204 1

原创 JPA启示录-该如何搭建好一个JPA项目

公司最新的项目在技术选型的时候,选择使用 JPA 最为数据映射的解决方案。由于之前对 Mybatis 更熟悉,因此,在搭建整个项目的时候,也对 JPA 有了更进一步的学习和认知。为何选择 JPA 而不是 MybatisJPA 是完全的 ORM 框架,对象、关系映射能力极强,数据库无关性比较好,用好 JPA 可以不用写 SQL 而减少大量的代码开发,后期维护性也比较好。当然现在 Mybatis 大行其道也不是不无道理,它对模型的要求不高,上手难度较低,能适应需求多变的各种场景。怎样认识 JPA 与 H

2021-01-31 23:08:44 213

原创 sonarQube 整合Gitlab 的 SSO 插件单点登录

前言 sonarqube 支持多种认证登录方式,如果使用自带的账号体系,需要管理员一个个添加账号,使用起来多有不便。不过一般公司都部署了私有化的 Gitlab,我们可以利用私有的 gitlab 账号来登录 Sonarqube。获取插件方式一如果你的 sonarQube 可以访问外网,直接使用管理员账号登录 sonarqube,在线安装插件。方式二或者可以去下载 jar 包。方式三要是都不行,还可以直接去下载源码,编译。Github 地址:sonar-auth-gitlab-plugin下载

2020-10-17 22:09:35 5423 6

原创 Maven Plugin fork 在 pom.xml中的作用

使用Spring-boot 的热加载 devtools开发工具时,团队中有些同事的电脑会不生效。无意中发现有人给了这样一个解决方案: <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>

2020-09-30 10:29:25 16927 8

原创 Java WeakHashMap指南

概述在这篇文章中,我们将探索 java.util 包中的WeakHashMap。为了理解数据结构,我们将在这里使用它来推出一个简单的缓存实现。但是,请记住,这是为了了解地图的工作原理,并且创建自己的缓存实现几乎总是一个坏主意。简而言之,WeakHashMap是Map接口的基于哈希表的实现,其键为WeakReference类型。当WeakHashMap中的某个条目不再被普通使用时,该条目将被自动删除,这意味着没有单个Reference 指向该键。当垃圾回收(GC)进程丢弃某个键时,其条目将有效地从映射

2020-08-31 22:28:12 279

原创 都2020年了,WordPress或许仍是最佳方案

许多人认为,WordPress 只能用于博客网站,实际并非如此,它比博客系统强大太多。对于预算有限的网站来说,WordPress 简直是你做一个出色站点的不二选择。在过去十年中,WordPress的市场份额从网络的百分之十以上增长到三分之一以上。这使得它成为最常用的内容管理系统(CMS)。WordPress还能继续增长吗?这种增长来自何处?WordPress是CMS的最佳选择吗?这就是为什么我坚信WordPress将在本十年末之前突破50%的神奇市场份额,同时成为个人,企业和企业的最佳选择!在撰写本文时

2020-06-30 23:17:29 2286 2

原创 原来后端程序员也能轻松开发一个微信小程序

作为一个 Java 程序员,早就想尝试一把微信小程序,但是一直苦于没有想法,再加上做一个漂亮的页面实在不太擅长。由于自己比较喜欢历史,经常看历史方面的书。在一次梳理中国现有的朝代时,突然想到,要是可以做成一个小程序,应该是不错的,于是 5 月初便注册了一个微信小程序开发账号,试着摆弄这个小程序。说实话,对 UI 和 UX 一窍不通,还真的不好设计。页面布局可以模仿,js 也将就可以写写, css 还真的驾驭不了。想着要是有一个 UI 框架,可以方便快捷搭建一个小程序就太好了。于是,就找到了 Color

2020-05-31 23:16:04 2395 3

原创 Wordpress 主题开发教程-页面结构与模板

在 wordpress 首页制作中,通过一个简单的 index.php 文件,显示了一个网站首页。实际上,Wordpress 并不是通过某一个文件来显示内容的,而是一堆模板文件组合显示。页面结构网站的风格千姿百态,我选取内容型网站(如简书,知乎等)作为样例。图片或者视频型的网站大都不是这样设计的,但是某些地方又有相通之处可以将网站划分为以下几个模块:Header 网站的头部,显示 lo...

2020-04-30 23:12:30 2662 4

原创 腾讯开放平台-QQ互联认证-未提交审核

背景 由于自己的应用希望接入 联合登录,于是找到了 腾讯开放平台 https://open.tencent.com/,发现 微信登录 要求比较高,QQ登录 比较容易些。在 QQ互联 提交资料以后,就耐心等待起来,过了几天,状态一直是 未提交审核然后想创建应用的话,就提示 开发者资料审核通过后才可创建应用这可真难为人,难道要继续等吗,于是开启了探索之旅。上面这一排链接,一个个点。在点...

2020-03-29 09:26:55 8072 10

原创 用 Gitbook 打造 Gitbook教程

Gitbook是一个出色的开源平台,可以通过简单的markdown文件生成精美的文档documentation和书籍e-books。他们也有带编辑的付费版本,但是,免费的开源版本可以轻松地通过与插件集成使用,满足绝大部分使用者的需要。GitBook是什么官方给的定义:GitBook is a command line tool (and Node.js library) for bui...

2020-02-28 10:01:26 1482 1

原创 Python 利用xlrd读取Excel文件

基本步骤模块导入测试是否已经有了 xlrd 模块:import xlrd不报错说明模块安装成功,否则,需要先安装:pip install xlrd打开文件/获取文件数据现有一个关于保险行业术语的 Excel 文档:文件名 Insurance_terms.xlsx文件中两个 sheet,名称为’GBT 36687~2018’和’JRT 0032-2015’excel = xl...

2020-02-11 14:41:46 6783 1

原创 Java异步编程该从何谈起

Java异步编程该从何谈起标签(空格分隔): Java从开始接触编程,我们早已悉知并熟练运用同步编程的思想。代码一行一行地写,一行一行地读,一行一行地调试。在很长一段时间里,都没能认清楚异步编程的存在,因为所有的场景都不需要借助到异步编程。直到,性能问题凸显。Java已经提供了很多种方式解决性能问题,其中最被人关注到就是并发编程。在JDK并发包中,提供了非常多的并发解决方案。对于多线程...

2020-01-09 20:45:28 838

原创 是时候深入了解JVM了

刚开始接触Java时,对JVM是无知的,确实,是无感知的。因为Java的设计者,为了降低语言的复杂度,屏蔽实现细节,将很多背后的操作"隐藏"了。在很长时间里,不需要了解Java虚拟机,也能写出可以运行的代码,甚至完美地运行一个Java程序。什么垃圾回收机制,类加载机制统统都抛之脑后,好像也没人说你不懂Java。直到…一次OOM的出现。解决Bug的能力与手段,决定了你想成为程序员还是好程序员。...

2019-12-13 23:27:29 711

原创 Wordpress主题制作之首页

前言 上节中已经通过Wordpress最基本的组成元素编写了一个mapull主题,现在需要将发布的博客内容展示出来。这一节开始需要写PHP代码了,但是一定要有一个意识,浏览器是不认识PHP代码的,浏览器只能解析HTML,CSS,JS。因此,在HTML文件中,所见到的就是浏览器里显示的,但是PHP中的代码需要服务器(Apache、nginx)解析后才会发给浏览器。输出文章内容Wordpres...

2019-11-01 09:31:12 2971 5

原创 Wordpress 主题开发教程-从零开始制作主题

写在前面Wordpress 经历过十几年的发展,5个大版本的迭代,已经相当成熟了。现如今,即使不懂任何的编程知识,通过主题与插件的支持,也能建立起一个不错的网站。但是,如果能了解一款主题是如何制作出来的,对于想修改主题,或者新开发一款主题的使用者来说,都会是一项不错的知识积累。这里讨论的是如何使用代码编写一个主题,如果你想了解的是如何安装或使用主题,那么你将不会从这里获得任何有用的信息。...

2019-10-30 21:08:25 7098 1

原创 eclipse ssh连接服务器RSEF1002

出现Operation failed. File system input or output error一般解决步骤Eclipse中有一个功能可以使用SSH链接到其他服务器。某次链接时,出现异常:异常描述:Operation failed. File system input or output error不是很清楚具体的问题,再展开详细描述:错误信息:Message repo...

2019-09-22 20:08:56 774

原创 从零开始搭建我的网上商城 - Pika商城

如今的电商网站已经太多,淘宝、天猫、京东都是耳熟能详的电商平台。开发一个属于自己的网上商城,既是对整个电商业务的把控,更是对自己技术的挑战。电商行业所需的技术范围较广,业务也相对复杂,追求性能,对安全性要求高。我搭建的这个电商网站基于B2B2C模式,分为运营商后台,商家后台,网站前台3个子模块。技术栈后端Java 1.8 (项目使用到了Lambda表达式)DubboX (基于...

2019-08-05 22:50:06 867 6

原创 SpringCloud入坑记-Zuul 初探

简介(是什么)服务拆分,使得原本清晰的业务线不那么明朗了,各个服务散落在不同角落,为了实现一个具体的业务逻辑,可能调用多个不同的服务,此时需要一个面向服务治理的组件——网关,Zuul就是在这种场景下诞生的。在没有引入网关时,用户的请求的一个购买请求需要调用多个微服务。此时可能遇到的问题:请求由客户端(网页、APP)控制,对其来说稍显复杂需要解决跨域问题很多服务需要认证授权在引...

2019-07-21 22:52:51 995

原创 SpringCloud入坑记-Hystrix组件

简介(是什么)Hystrix是Spring Cloud中又一重要组件,主要用来处理分布式系统中的容错需求。借用Hystrix的github介绍:Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd ...

2019-06-23 22:48:45 1134

原创 SpringCloud入坑记-Ribbon进阶

前言在初步了解了Ribbon之后Ribbon初体验,还需要进一步探究Ribbon高级特性。Ribbon的负载均衡现成的负载均衡策略Ribbon提供了许多负载均衡策略,其中一部分列举如下:类简称说明RandomRule随机随机地选择服务RoundRobinRule轮询依次循环选择服务RetryRule重试选择服务失败以后尝试选择其他服务B...

2019-05-23 22:46:14 1001

原创 SpringCloud入坑记-Ribbon初体验

前言基于对Eureka的认识,可以很容易地建立一个独立的服务了,但是服务间还不能相互调用,这一节将着重解决这个问题。创建项目扩展商品服务创建一个项目ms-c1-product-service,其中Eureka的配置部分和之前章节一样,接下来重点添加其他部分代码。添加实体 Productpackage com.chao.entity;import lombok.AllArgsCon...

2019-04-27 21:32:08 587

原创 SpringCloud入坑记-深入Eureka

前言如果还不了解Eureka,那么应该先从上一篇开始 SpringCloud入坑记-初识Eureka。搭建一个Eureka Server已经注册一个实例,才算有一个初步的认知。自我保护在实践过程中,很可能会在页面遇到下面一段红色文字:EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NO...

2019-04-21 22:32:30 640

原创 SpringCloud入坑记-初识Eureka

接触基于SpringCloud的微服务设计已经一年多了,在学习与实践过程中,走了很多弯路,也遇到了一些坑。这些文章将按照我对微服务的理解,有体系地讲述SpringCloud入坑那点事儿。有幸从头参与了公司从单体应用到微服务架构的演进过程,从最开始的蒙蔽状态到如今的略知一二,深知其中不易。如今,公司项目已经成功上线,终于有机会将自己的思想沉淀为文字,记录曾经奋斗的痕迹。在深入细节之前,应该对事...

2019-04-20 23:08:36 774

原创 我认识的微服务

微服务是一种架构风格。说起微服务,不得不提到两个人:James Lewis和 Martin Fowler,他们在2014年发表了一篇文章Microservice,正式将微服务这个理念概念化。当然,他们更多的是在阐述微服务是一种什么样的设计思想,而没有告诉我们微服务该使用什么样的技术栈。通过这篇文章,大概可以总结下面几点:微服务是一系列微小的服务微服务运行在进程中每个服务是独立开发...

2019-03-31 22:49:59 488

原创 RabbitMQ基础

RabbitMQ是目前非常热门的消息中间件之一。命令行命令行工具能方便地进行 RabbitMQ的管理rabbitmq-serverrabbitmq-server start 启动RabbitMQrabbitmqctlrabbitmqctl reset 移除所有数据rabbitmqctl stop_app 服务的停止rabbitmqctl change_cluster...

2019-03-24 22:04:21 495

原创 消息中间件概览

消息中间件消息中间件的定义?利用高效可靠的消息传递机制与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。官方的解释比较拗口,其实就是用于程序间通信的一种手段,系统间通过消息传递完成交互。消息中间件应用主要场景异步:有些业务不需要立即处理消息,可以异步处理,快速返回解耦:服务双方不需要知道彼此的存在,只要发布消息,消费消息即可削峰:消息中间件可以在峰值时堆积消息,...

2019-03-21 21:42:53 538

原创 Java 数据库知识整理

此文记录了自己学习Java 数据库的基础知识,纪念自己面试前的准备。数据架构面试:如何设计一个关系型数据库?逻辑(存储管理、缓存机制、SQL解析、日志管理、权限、容灾、索引管理、锁机制)存储(文件系统)数据库索引面试:为什么要用索引如果不使用索引,需要使用到全表扫描。使用索引可以快速的查询数据。面试:什么样的信息能成为索引?索引可能的数据结构二叉查找树进行二...

2019-03-03 19:49:01 524

原创 Java 高并发思路

此文记录了自己学习Java 高并发思路的基础知识,纪念自己面试前的准备。扩容垂直扩容(纵向扩容):提高系统部件能力水平扩展(横向扩容):增加更多系统成员读操作扩展memcache、redis、CDN写操作扩展Cassandra、Hbase等缓存缓存的特征命中率:命中数/(命中数+没有命中数)最大元素(空间)清空策略:FIFO(先进先出)、LFU(最少使用)、LR...

2019-02-28 21:13:14 749

原创 Java 计算机网络

此文记录了自己学习Java 计算机网络的基础知识,纪念自己面试前的准备。OSI 七层协议是一个定义良好的协议规范,定义了开放系统的层次结构,没有提供一个可以实现的方法。物理层定义了物理设备,IEEE 802.2,网卡工作在这一层数据链路层物理寻址,将比特流转换为逻辑传输线路,交换机工作在这一层网络层控制子网的运行,如逻辑编址、分组传输、路由选择,路由器工作在这一层传输层接受...

2019-02-27 23:08:44 1262

原创 Java并发编程基础

此文记录了自己学习Java并发编程的基础知识,其中的图示并非原创。并发同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替换入或者换出(上下文切换),外界看这些线程是同时存在,每个线程都处于某种状态,如果运行在多核处理器上,程序中的线程将分配到各个处理器核上,也可以同时运行。多个线程操作相同的资源,保证线程安全(合理使用资源)高并发 High Concurrency...

2019-02-19 23:07:12 995

原创 Spring 的异步HTTP请求AsyncRestTemplate

如果你是第一次看到这篇文章,那么我建议你先去看一下上一篇《Spring 的异步HTTP请求AsyncRestTemplate》还是那个套路熟悉使用RestTemplate的,不会觉得AsyncRestTemplate很难,因为的确很相似。在Spring 看来,你只管写同步的代码,异步的执行交给它处理就可以了。配置依旧在默认的有时难以满足多变的需求,于是配置自定义参数排上用场: @Be...

2019-01-30 23:02:04 16123

原创 Spring 的异步HTTP请求调用AsyncRestTemplate

业务场景基于HTTP的请求调用是一种常见的数据交互方式,Java也有很多类库可以实现HTTP请求调用,在大多数时候,它们是都同步调用。如果请求响应比较慢,甚至请求超时,程序就必须等到请求返回以后才能继续执行,在某些场合下,我并不需要等待请求的结果,或者我不关心请求是否执行成功,需要继续执行之后的逻辑,就需要通过异步处理。在 Spring 3 时代,为了能更优雅地实现HTTP调用,引入了 Res...

2019-01-29 23:34:06 13854 4

原创 2018 我的CSDN博客之路

一直觉得博客可以记录过往的总结,展现当下的工作,扩展未来的视野,于是,就这么坚持着,坚持着,一晃四年过去了。2017年末的时候,我的博客数量刚好到达百篇,从懵懂无知到渐入佳境,博客内容几乎能体现出来。2018年3月底,访问量为23W,排名到了1.2W,基本上是一个稳步前进的事态。2018年4月底,访问量为24W,排名到了1W+。2018年5月底,访问量为27W,排名到了1W+。...

2019-01-20 22:03:18 716 2

原创 JAXB 深入显出 - JAXB 教程 总结

摘要: JAXB 作为JDK的一部分,能便捷地将Java对象与XML进行相互转换,本教程从实际案例出发来讲解JAXB 2 的那些事儿。完整版目录JAXB(Java Architecture for XML Binding)不是一个简单的技术,也不是什么高深的技术。它做的事情很简单,就是方便 Java 对象 与 XML 之间的转化,它是一个常见的技术,却是一个不常见的技术。虽然它已经被集成到了 j...

2018-12-30 23:40:18 1670 3

Windows6.1-KB2999226补丁

这个文件是 Windows的 KB2999226 补丁,在64位机器上工作的,可以解决计算机中丢失api-ms-win-core-***-|1-1-0.dll类似的问题。

2017-07-05

自定义Solr分词器

自定义的Solr 分词器,可以通过竖线&quot;|&quot;来分词,可以在博客http://blog.csdn.net/jiangchao858/article/details/68954044看到生成过程与使用步骤。

2017-04-02

第一个Java程序

第一个Java程序PPT

2017-04-01

kernel-headers-3.10.0-327.el7.x86_64.rpm

安装CenterOS 的时候需要用到的内核kernel-headers-3.10.0-327.el7.x86_64.rpm

2017-03-05

kernel-devel-3.10.0-327.el7.x86_64.rpm

安装CenterOS的时候需要用到的kernel-devel-3.10.0-327.el7.x86_64.rpm

2017-03-05

Git 32位_2.11.1.exe客户端

Git官网下载太慢,好不容易下载到了32位的2.11版本Git客户端,分享于此。

2017-02-15

ik-analyzer-solr6

支持Solr6的中文分词ik-analyzer,已经修改了源码,源码上传到了GitHub上,名字就是ik-analyzer-solr6

2016-11-15

mmseg4j-solr-2.3.2-with-mmseg4j-core

该压缩包包含`mmseg4j-solr-2.3.2.jar`和`mmseg4j-core-1.10.0.jar`,其中solr-2.3.2不是官方的版本,该版本有改动,使得mmseg4j可以很好的支持Solr6,如果你的Solr低于Solr6,请使用官方的mmseg4j-solr-2.3.0.jar或者其他版本。

2016-11-09

mmseg4j-solr-2.3.0-with-mmseg4j-core

mmseg4j-solr-2.3.0-with-mmseg4j-core是Solr的中文分词包,支持Solr5.x版本,向上兼容Solr6,但是不支持Solr6的所有版本。该压缩包含有mmseg4j-core-1.10.0.jar和mmseg4j-solr-2.3.0.jar。

2016-11-06

marklogic eclipse 插件XQDT

marklogic 的eclipse插件XQDT,官网上给我链接在eclipse上装插件失败了,就找到了这个离线的插件zip包。只需要解压文件后,复制到eclipse对应的目录下:features和plugins下,不需要其他配置,重启eclipse即可。

2015-11-28

空空如也

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

TA关注的人

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