自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贱男

比你优秀的人还在努力,你知道吗?

  • 博客(168)
  • 资源 (9)
  • 收藏
  • 关注

原创 spring5源码分析-bean的创建过程(二)

今天主要在讲在bean的创建过程中,createBean中的方法,在创建一个bean的时候,基本的流程如下图。

2021-01-18 14:49:47 25

原创 spring5源码分析-bean的创建过程(一)

spring源码分析,到目前为止,这是第三篇了。好了好了好了,终于可以开始写了,本文还是从一个案例进行分析源码。public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); // getBean方法,获取一个bean,如果没有则会去创建 Sys

2021-01-13 15:49:14 45

原创 spring5源码分析-BeanDefinition

一、引言二、什么是BeanDefinition三、BeanDefinition的合并操作

2021-01-04 16:30:16 145 1

原创 Redis百万数据为何上生产后凭空消失?

一、引言嘿嘿,年底写博客冲个业绩,今年博客之星都要求发文20篇以上才有资格参加,然后小编看了下今年发文章数量。居然才16篇,啧啧啧,今年只为了追求质量,咱们就不追求数量了~~~~~二、为何不见了?先来说说场景:项目在上生产之前,我们已经把所需要的数据提前加入到redis当中,因为在生产环境中,rbd和aof持久化是需要两个同时打开的,而redis默认只打开了rbd。为啥要两个都打开呀?rdb 丢失数据较多,但是在恢复数据比较快,aof 丢失的数据较少,但是恢复慢。 所以,在生

2020-12-25 15:40:16 81

原创 spring5源码分析-FactoryBean

一、引言怎么说? 一直想写spring源码分析系列的文章,又不知道从何写起。回想2018年小编写文章的目的是什么呢? 只是单纯的记录自己的学习,当作笔记来使用(对,真的只是当作笔记)。随着CSDN发展、随着年龄的增长、随着心理的变化,反而变得不是那么单纯。有时候花了一个礼拜、两个礼拜认认真真写一篇源码分析的文章,访问量少而又少,点赞寥寥无几。正义也许会迟到,但绝不会缺席,怀着最初的心态,再加年底小编会习惯总结今年所学习的知识,整理整理还是觉得发到博客上,希望在看的小伙伴点个赞啥的。小编分

2020-12-24 17:04:50 68

原创 有人问学习源码究竟有什么用? 异常源码分析

一、引言小编最近接了个相当于外包的项目,在他们项目中集成一个WebSocket的服务端,嗯功能其实不难,但是前方有坑。本文主要来记录一下,如果没有了百度,在项目启动就抛异常、或者一些奇奇怪怪的问题,靠自己怎么去排查问题,同样有时候并不是所有的问题都能够通过搜索引擎来解决。除了外力,那我们就只剩下:异常信息、源码、和本身经验。项目框架用的是SpringBoot,然后集成WebSocket就行,在集成的过程中,其中有一步需要配置一个Bean。@Componentpublic class

2020-11-12 14:44:47 367 2

原创 都2020年10月24了,你可能还不知道那些JVM的秘密

1、引言在座的各位程序员们,10月24号,今天还有没有是坐在公司加班的?小编估计肯定有,谁让我们是程序员,就好比如保卫国家的战士们,总是奋战在战场的前线,来守护老百姓的生活安宁。不管咋样,小编还是祝贺同胞们节日快乐,永无BUG、永远青春、永不脱发~~~2、想一想在小编刚开始学习Java语言的时候,然后知道了JVM,之前老师一直说Java中的实例对象就存储在JVM中的堆区。先给大家上一张JVM的内存模型图,这图应该很熟悉吧,应该对每一块干什么用的多多少少也有了解个大概。过了几年

2020-10-24 14:31:17 625 6

原创 面试官提问,如何用一段代码证明JVM加载类是懒加载模式 ?

假如有一天,你要找工作,等到了面试邀请,来到了面试公司,做完了笔试题,迎来了面试官。面试官的第一个问题确是:你如何用一段代码证明在JVM加载类是懒加载模式?来来来,都坐下,先看看这段代码,思考一下结果。/** * Created by IntelliJ IDEA. * * @author IT 贱男 * description: * date: 2020/8/25 15:23 */public class SuperClass { static {

2020-08-25 16:16:24 366

原创 你知道java类在JVM底层中如何存储的么 ? Klass模型

在看文章之前,来举手看看有多少小伙伴是以下情况的:表情包都说:一杯茶、一包烟,一行代码写一天。写代码,我们是在.java文件中写的, 经过编译,会编译成.class文件,最后会通过类加载器到JVM中去。那么请问,java类在JVM底层中如何存储的? (知道扣1、不知道扣2~~~)那么本文就来和大家讨论一下这个问题。Klass 模型Java的每一个类,在JVM中,都会有一个对应的Klass类,用来存储类的元信息比如:属性信息、方法信息等等。Klass类什么?它是一个用C++..

2020-08-25 14:52:38 475 2

原创 编译Spring5.0.x源码之一路坎坷,你经历过绝望吗?

本文来说说在编译spring-springframework-5.0.x的路上,小编我到底经历了什么?如果正在看文章你,恰好也想要研究spring源码,那么请先做好准备再动手,不然迎来的问题如滔滔江水,连绵不绝。第一天:先来说说环境:系统:MacOs、开发工具:idea 2017、JDK:1.8spring源码传送门:https://github.com/spring-projects/spring-framework第一天小编什么都没准备,直闯源码仓库,找到5.0.x版本,小.

2020-08-14 16:13:29 2746 9

转载 深入理解Java线程池 ScheduledThreadPoolExecutor

1. ScheduledThreadPoolExecutor简介ScheduledThreadPoolExecutor可以用来在给定延时后执行异步任务或者周期性执行任务,相对于任务调度的Timer来说,其功能更加强大,Timer只能使用一个后台线程执行任务,而ScheduledThreadPoolExecutor则可以通过构造函数来指定后台线程的个数。ScheduledThreadPoolExecutor类的UML图如下:从UML图可以看出,ScheduledThreadPoolExecuto

2020-07-20 17:24:29 172

原创 面试从int数据类型引发的一场血案,请问这真的只是基础吗?
原力计划

天有不测风云,没想到今天给遇到了,早上起床大雨交加,噼里啪啦收拾出了门。面试官:你好,我这边是负责面试的,那咱们就开始吧小编:好的好的( 点点头 ) ~~面试官: 那我们从简单来先把。 一个int类型占几个字节?小编:4个字节,一个字节等于8个bit位。面试官:那你来说说byte和bit的区别 ?问到这里,小编就有点不详的预感~~首次来说 8bit = 1 byte ,计算机中最小的信号单位是bit、而最小的信息单位是byte。...

2020-06-08 15:54:58 520 2

原创 Java并发编程应该掌握的并发工具类,快来看看你掌握了哪些?
原力计划

1、JUC是什么?JUC是java并发包java.util.concurrent的缩写,你没有看错,就是这么简单明了~~~在我们JDK的并发包中,提供了几个非常有用的并发工具类,比如:闭锁、同步屏障、信号量,在线程之间交换数据的一种方式 Exchanger,文本还会讲到,用于并行执行任务的框架Fork/Join。2、CountDownLatch 闭锁这个CountDownLatch...

2020-05-09 11:15:49 452

原创 深入ReentrantLock实现原理和源码分析,冲鸭~~
原力计划

一、引言话不多说,扶我起来,我还可以继续撸。在学习ReentrantLock源码之前,先来回顾一下链表、队列数据结构的基本概念~~二、数据结构2.1 链表(Linked List)小学一、二年级的时候,学校组织户外活动,老师们一般都要求同学之间小手牵着小手。这个场景就很类似一个单链表。每个小朋友可以看作一个节点信息,然后通过牵手的方式,形成整个链表结构。1、链表是...

2020-04-27 17:24:42 378

原创 PPet —— 点进来送你一个桌面宠物,让单身码农不再孤单~~

一、引言还是今早一如既往来到公司,打开B站就开始吸取今天的欧气~~逛了这么久的B站突然发现还有这么一个骚操作,在页面有个动漫小可爱,还可以和鼠标做简单的交互。这让我小编我想到了以前小时候玩的QQ宠物,在桌面上可以游戏,喂食物等等。(左图 B站 、 右图 QQ宠物) 二、软件下载PPet,给你的桌面增加一丝色彩 ~~...

2020-04-16 10:21:37 2888 1

原创 从青铜到王者的路线来聊聊Synchronized底层实现原理
原力计划

这篇文章码了小编***个小时,给个赞不过分吧~~文本内容有点多,如果有写错或者不好地方,还请多多指教~~~~~~~

2020-03-20 16:18:44 1673 4

原创 背井离乡上海就业三年,是如何坚持走到今天,之后的路又该如何选择??
原力计划

一、引言2020年算第一天正式上班的日子,心情顿时有点振作了起来,但却略带一丝紧张。振作的原因是我又可以回到之前的生活,在公司的环境下可以保持着专心工作、专心写代码和学习的心态,紧张又是因为我要提离职了。其实这篇文章是打算等我真正离职后才开始写的,但离职不是特别顺利,外加一些因素,又让小编犹豫不决。二、踏上一条不归路,过上消磨时光的日子17年2月18日,这个是小编我第一次踏上上...

2020-03-05 10:55:00 2080 6

原创 Java递归实现多级菜单实现

一、引言小编之前写过如何实现一二级菜单的文章,回顾了下之前所实现的逻辑方式,简直惨不忍睹~~由于近期小编接触新的项目需要实现展示菜单功能,但这次的菜单是需要多级,并且级数不固定。像这种需求,一般很简单的来说就是用递归实现了,可以从第一级一直往下查,一直查询到为空为止。二、数据库表结构这里小编之列出来几个基本的字段,但是够用了CREATE TABLE `mall_categ...

2020-02-26 21:59:52 2622 18

原创 nacos —— 控制台默认用户名密码

一、引言最近疫情比较严重,小伙伴就老老实实呆在家办公吧~~新的一年小编近几个月比较忙,所以博客更新的比较慢,但是工作还是得继续呀。新年的第一篇博客,新年快乐、新年快乐、新年快乐。二、默认密码新的一年第一个礼拜小编在家办公,接触了一个新的项目,其中所使用的注册中心是阿里巴巴开源的Nacos。把Nacos服务启动之后,服务也相对注册上了,访问Nacos的后台直接弹出个登陆页面 ...

2020-02-04 18:41:06 14872 1

原创 实战开发支付SDK —— 处理微信支付异步回调以及订单状态查询(含源码)

一、引言上篇文章中,讲解并且实现微信支付,既然微信下单成功了,那我们怎么知道用户有没有付款呢?说到这里,小编先要明确一下,我们主要的是针对开发一个支付的SDK。SDK通俗来讲,把我们所编写的一个项目可以打包成一个jar包,其他项目进行依赖,就可以使用该jar包中所对应的方法。那么这里微信首先会:异步回调通知商户系统 —— 商户系统调用SDK中异步回调处理的方法 —— 商户系统拿到S...

2020-01-06 15:19:09 1153

原创 实战开发支付SDK —— 对接微信支付看这一篇文章就够啦(含源码)

Table of Contents一、引言二、了解微信支付2.1、支付方式2.1.1、付款码支付2.1.2、JSAPI支付2.1.3、Native支付2.1.4、APP支付2.1.5、H5支付2.1.6、小程序支付2.1.7、人脸支付2.2、名词解释2.2.1、appid2.2.2、openid2.2.3、商户号以及密钥三、同步 vs 异...

2019-12-27 15:36:53 2925 1

原创 实战开发支付SDK —— 项目结构设计讲解(微信、支付宝)

文章目录结构一、引言二、整体结构设计三、项目代码结构四、项目通用工具类MapUtil :MoneyUtil :RandomUtil :XmlUtil​​​​​​​ :一、引言上一章节介绍有关于SDK内容,以及项目搭建。那么本章就来说说,在开始动手写代码之前,我们先要确认好,这个SDK你想做成什么样子,想怎么去设计。郑重声明:小编并非专业架构设...

2019-12-23 15:42:44 1069 1

原创 实战开发支付SDK —— 内容介绍以及项目环境搭建

文章目录结构一、引言二、内容介绍三、项目技术介绍lombok的使用Retrofit2网络框架的使用四、项目搭建五、骗一波关注一、引言这两大支付可以说已经深深融入我们每个人的生活了,但做程序员的我们来说,掌握对接微信支付、支付宝支付是一个很大的优势,现在小编的衣食住行基本上是离不开它们的,出行就是滴滴、吃饭就是美团饿了么,购物就是淘宝京东!!!所以为了更进...

2019-12-21 15:40:37 716

原创 Java行为型设计模式 —— 命令模式打响战争的开始

一、引言阳光明媚的一个周末。上一章讲了模板方法设计模式,今天小编继续来说命令设计模式,也是行为型设计模式的一种~~~~二、命令模式基本介绍所谓命令模式,就是下达命令,最后有人执行命令。大家想想古代打战的时候,将军下达命说,明天需要攻下某某某山头。那么将军就找来了参谋长,这个时候参谋长得知了将军的意思,参谋长就找来每个军营的负责人,说一营、二营全部人员明天出发某某某山头。...

2019-12-14 12:57:58 265

原创 Java行为型设计模式 —— 模板方法模式将大象塞入冰箱

一、引言今今今今今今今今今天,小编所编写设计模式已经进入白热化状态了,之前介绍了创建型、结构型一共12种设计模式。现在升级到行为型设计模式了,skr skr skr ~~~行为型设计模式一共11种,那么今天就来说模板方法模式,这个模板方法设计模式相对来说还是比较好理解的。二、模板方法基本介绍有时候我们在功能开发过程当中,会发现新需求和之前的功能很类似,执行的流程都一样,可能就是...

2019-12-07 16:54:18 290

原创 Java结构型设计模式 —— 必须要了解的代理模式

一、引言一年四季,这今年上海的冬天格外的冷童鞋,听说你还不够了解代理模式,来看这篇文章就够了,本文看起来通俗易懂,读起来朗朗上口,写撰水平绝不亚于莎士比亚的四大悲剧。不知道扯些什么啦,进入主题把~~~~~~~~~~~二、代理模式基本介绍代理模式小伙伴多多少少都有了解,就是通过一个代理对象,去调用另外一个对象的方法是吧?下面是一段白话:代理模式:为一个对象提供了一...

2019-12-05 21:29:58 253

原创 跟小编玩转Docker到天亮 —— 利用Bind Mouting提高开发调试效率

一、引言阔爱帅气的小编又来了 , 那么么么么今天所写的文章也是在实际使用docker所遇到的问题。新开发一个项目、或者新写一个功能需求,那肯定避免不了调试开发,然后测试,测试完又要改源码。但每次修改一次源码都需要重新build的一下镜像,我滴天,这么麻烦的吗?如果你也是遇到类似相同的问题,请问继续往下看......二、数据持久化之Bind Mouting遇到这个问题小编...

2019-12-03 15:32:14 151

原创 Java结构型设计模式 —— 享元模式的应用

一、引言哟哟哟,十二月啦下个月就过大年初一了,不得不说越长大越感觉时间不经用,这篇文章本应该是上周就应该开始写的,上个礼拜被硬生生周末拖过去加班,拖到了这个礼拜的周末。说实话设计模式这一系列的文章,也包括小编看其他博主所分享的设计模式相关文章,访问量都不是特别多,说明设计模式还不被广大的程序员所重视。设计模式这种东西你要不学也没有关系,小编之前也说过设计模式之所以存在那么肯定是有它...

2019-12-01 12:07:09 127

原创 跟小编玩转Docker到天亮 —— 实战搭建docker私有仓库

一、引言最近有小伙伴看到关于网易的新闻么?我们绝大部分的程序员都是单纯的,我们没有很多套路,绝大喜欢认认真真写代码,维持让公司的程序更加稳定,尽我们本职工作,这样有错吗?但我们却要因为公司自身的问题,来面临公司的各种手段???那遇到这种问题要怎么办呢? 只要你有实力,有能力,走到哪还怕没饭吃? 那换句来说,如果你待在一家公司不思进取,出去又没有一技之长,难道要在这一家公司做到退休...

2019-11-26 15:21:31 134

原创 跟小编玩转Docker到天亮 —— 制作自定义docker镜像并上传仓库

一、引言上章回顾:跟小编玩转Docker到天亮 —— Docker容器入门上手实战体验本章学习内容:掌握制作自定义镜像并且远程上传仓库上一章节我们讲诉了docker容器的安装和基本命令的使用,并且实战下载Nginx镜像并且启动操作,那今天小编来讲怎么制作一个自己的镜像文件,如果你是新来小伙伴也没有关系,刚开始小编学习docker时候也没有去了解docker的一些概念,而是直接把项目制...

2019-11-20 15:09:58 180

原创 跟小编玩转Docker到天亮 —— Docker容器入门上手实战体验

一、引言上章回顾:跟小编玩转Docker到天亮 —— 聊聊docker,走进docker世界本章学习内容:掌握Docker基本操作命令快看,那是一群正在每天努力奋斗的年轻人,他们在努力想活成自己想要生活的样子。小编在上一个章节扯了那么多有的没的,那么本章保证是干货,绝对适合刚上车的朋友,上手简单,操作却能让人维持惊叹。二、安装Dockeremmmm,首先这个安装操作呢,小编...

2019-11-16 23:14:38 200

原创 跟小编玩转Docker到天亮 —— 聊聊docker,走进docker世界

一、引言 今天小编要开始编写新系列的文章啦, 本次围绕的主角是 “Docker”。“早就有其他博主早就写过啦,阅读量杠杠的” “是谁? 是谁在说话?”当然确实早已有其他博主写过docker相关的博客,但是那又怎样? 他有小编长得帅吗?小编我就是要写(偷笑,偷笑)但话说回来,当初从小编写第一篇博客起,初心是为了分享自己的学习过程,比小编优秀的博主数不甚数,...

2019-11-15 11:10:17 239

原创 Java结构型设计模式 —— 使用外观者模式能够解决什么问题?

一、引言引言小编都不知道说些什么好了,上个月比较忙,这个月好像也差不多。主要接近年底,公司还裁员,公司整个技术业务线就三个人担着,欲哭无泪。小编尽量在年前把23种设计模式写完,当然设计模式小编也不能够说每一种都都铭记在心,熟练使用,有些都是小编初次使用,如果以后小编在使用过程中获得了更深层次的理解,小编会及时更新。二、外观者模式基本介绍外观模式(Facede),也叫做“过程模式...

2019-11-10 15:16:18 207

原创 Java结构型设计模式 —— 用组合模式建学校组织

一、引言距离2020年元旦还剩下83天很多小伙伴不理解为什么要学习设计模式,也有很多小伙伴在学习设计模式过程当中,因感觉枯燥无味放弃了。学习设计模式重点不在于学习时所写的代码,而是要去领会设计思想,当然第一次学习可能不会领会很深刻,需要一点一点进行累积,我们可以学习设计模式的同时,去看看一些开源框架中是如何使用设计模式,进一步巩固。学习设计模式是为了使你所写的代码具有更好的扩展型、...

2019-10-10 10:29:02 314

原创 Java结构型设计模式 —— 用装饰者模式来卖煎饼果子

一、引言9月30号上映,《我和我的祖国》这个电影,小编不知道你们看了没,还挺不错的。其中讲述了新中国成立、中国女排、香港回归、首颗原子弹爆炸等等历史性的事件,小编再一次体会到中国的强大。国庆节假期现在是第四天了,去年这个时候小编还记得再写redis相关操作,年复一年。二、装饰者定义结构型设计模式,动态的将新功能附加到对象上,在对象功能扩展方面,他比继承更加有弹性,装饰者模式也体...

2019-10-04 13:02:58 298

原创 Java结构型设计模式 —— 一篇文章搞懂桥接模式

一、引言马上要国庆了哎,从1949年10月1号新中国成立,到今年是新中国成立第70周年,祝祖国早日实现百年计划 ~~~小编在这里赌还有小伙伴并不知道中国的两个百年计划是什么,不清楚赶紧点击下方链接科普一下。https://zhidao.baidu.com/question/524909909660576405.html咦,国庆你去哪儿玩?是在跟我说玩吗? 需求开发完了吗?该做的...

2019-09-25 16:33:03 140

原创 MyBatis-Plus 高级功能 —— 自定义通用方法

一、引言大家已知MP给大家提供了很多通用的方法,可以看看MP源码中DefaultSqlInjector这个类,在这个集合当中包含了都是通用方法类,如果想要使用自定义通用方法,也需要添加到这个集合当中。/** * SQL 默认注入器 * * @author hubin * @since 2018-04-10 */public class DefaultSqlInjector e...

2019-09-24 16:41:24 5865

原创 MyBatis-Plus 高级功能 —— 动态表名SQL解析器

一、引言先来说下动态名表在什么场景下需要使用呢?拿小编的实际项目来说,小编公司手里掌握着国内各个部分地区的医院患者数据,那么一个医院的患者的数据流量肯定是很大的,这个时候如果全部放在同一张表中,那么可想而知数据量的庞大。所以数据库设计的时候可以一家医院对应一张表,分开来存储,表中的列名都是一样的,只是表名不同。或者还可以做日志的存储,日志数据量也是很大的,可以分一个月对应一张表,比如:...

2019-09-23 11:24:48 11089 1

原创 MyBatis-Plus 高级功能 —— 多租户功能实现

一、引言小编先解释一下什么叫多租户,什么场景下使用多租户。多租户是一种软件架构技术,在多用户的环境下,共有同一套系统,并且要注意数据之间的隔离性。举个实际例子:小编曾经开发过一套H5程序,这套程序应用在不同医院的APP上,当医院患者下载医院APP,并且进入相对应的H5页面,APP则会把用户相关数据传输到小编这里。在传输的时候需要带上医院标识(租户ID),以便小编将数据进行隔离。当不...

2019-09-22 16:48:16 21072 6

原创 MyBatis-Plus 高级功能 —— SQL性能分析打印插件

一、引言在我们日常开发工作当中,避免不了查看当前程序所执行的SQL语句,便于程序员排忧解难呐。MP提供了两种方式,用于输出每条SQL语句及其执行时间,针对执行较长时间的SQL可以停止运行,有助于发现问题。这两种方式只适用于开发环境,不建议生产环境使用。二、性能分析插件该插件3.2.0以上版本移除,推荐使用第二种方式(执行SQL分析打印)方式。步骤一:在MP配置类中配置该...

2019-09-20 13:51:11 2516 7

springboot-websocket实战案例

该项目采用springboot+websocket 实现聊天小案例。 包括 springboot+websocket 实现服务端代码、html5 连接websocket客户端、springboot后台连接websockete客户端代码。

2019-01-12

CentOS-6.3-i386-bin-DVD1.iso 镜像文件

CentOS-6.3-i386-bin-DVD1.iso 镜像文件 用于虚拟机系统安装。

2019-02-08

spring集成redis实现聊天室功能

spring集成redis,实现订阅、发布消息聊天室网页群聊功能。

2019-02-17

Vue调用SpringBoot后台实现文件下载功能

该案例实现前端Vue通过axios请求SpringBoot后台,实现文件下载功能。 filepack : 前端项目 8081端口。 fileServer: 后端项目 8080端口。

2019-04-02

SpringCloud_Eureka服务调用实战案例

本实战案例实现Eureka服务端、客户端的基本配置,以及配置Eureka高可用。 针对实际业务中进行实战演示,订单服务已知商品编码,通过Eureka调用商品服务从而获得商品信息等操作!

2019-03-26

SpringBoot前端网页上传文件案例

java web前端上传文件到后台常用三种方式,包括from表单提交、ajax提交、FormData对象提交,框架采用Spring Boot。

2019-02-05

IK Analyzer 2012FF_hf1

IK-Analyzer中文解析器,提供给搜索引擎进行中文分词,来达到更好的搜索效果!

2018-09-17

dubbo+zookeeper透明化远程调用实战案例下载

dubbo服务是阿里所出的一个框架,结合zookeeper来实现透明化远程调用。

2018-04-24

javamail发送邮件需要的jar包

需要使用javamail jar包的可以下载

2017-05-25

空空如也

空空如也

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

TA关注的人 TA的粉丝

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