自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Scnu_wang的博客

只做一件事,把它做到最好!

  • 博客(101)
  • 资源 (30)
  • 问答 (1)
  • 收藏
  • 关注

原创 Cannot find compatible factory for specified execution.target (=local)

目录背景描述错误信息解决方案背景描述本地运行Flink入门的word count项目,但是运行是报错,提示如下信息。错误信息SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: ...

2020-04-20 23:48:12 1455 1

原创 bash devtty No such device or address

hexo dbash: /dev/tty: No such device or address error: failed to execute prompt script (exit code 1) fatal: could not read Username for ‘https://github.com‘: No error FATAL Something’s wrong. May...

2018-08-08 17:27:08 13254

原创 mybatis-generator 配置文件说明

时间久了没有配置,之前的那个配置文件丢了,今天根据官方文档重新配置了一下,记录在这里:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//D

2018-07-02 17:07:13 717

转载 再有人问你Java内存模型是什么,就把这篇文章发给他

原创: Hollis Hollis 原文链接:https://mp.weixin.qq.com/s/ME_rVwhstQ7FGLPVcfpugQ 前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一...

2018-07-02 10:48:28 587

原创 Ubuntu 安装Nodejs

之前一直在的云服务器(阿里云Centos)上安装nodejs,两步如下:curl –silent –location https://rpm.nodesource.com/setup_8.x | sudo bash -sudo yum -y install nodejs 快速简单的就安装到8.x版本。最近要在本地虚拟机(Ubuntu16.04LTS)安装Nodejs用于学习Truf...

2018-04-03 10:21:17 560

原创 Python3 error: initial_value must be str or None

注意Python3 中,bytes 和 str 的区别:Traceback (most recent call last): File "C:/Python/projects/test.py", line 10, in <module> result = Image.open(StringIO(r.content))TypeError: initial_value must be st

2018-01-18 17:29:23 4127

转载 CSRF攻击与防御

转载地址:http://www.phpddt.com/reprint/csrf.html       CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:       攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮

2017-10-17 10:11:26 341 1

转载 Spring Boot应用之数据加密以及字段过滤

1、应用背景在使用Spring Boot开发基于restful类型的API时,对于返回的JSON数据我们经常需要对数据进行加密,有的时候我们还必须过滤掉一些对象字段的值来减少网络流量2、解决方案1)加密对返回的数据进行加密,我们必须对spring boot返回json数据前对数据进行拦截和加密处理,为了方便api调用解析还原数据,我们采用双向加密的方式,因为客户端需要解密为明文,加密的使用java本

2017-09-14 18:16:55 9829

原创 Spring-boot-redis序列化Date数据类型

@Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializ

2017-08-30 17:53:23 5557

转载 LinkedList和ArrayList的区别

LinkedeList和ArrayList都实现了List接口,但是它们的工作原理却不一样。它们之间最主要的区别在于ArrayList是可改变大小的数组,而LinkedList是双向链接串列(doubly LinkedList)。ArrayList更受欢迎,很多场景下ArrayList比LinkedList更为适用。这篇文章中我们将会看看LinkedeList和ArrayList的不同,而且我们试图

2017-08-29 00:11:43 673

转载 HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,List

2017-08-29 00:10:24 420

转载 HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集

2017-08-29 00:09:37 335

转载 可以重写静态方法吗?

问:你可以重写静态方法吗?答:如果从重写方法会有什么特点来看,我们是不能重写静态方法的。虽然就算你重写静态方法,编译器也不会报错。也就是说,如果你试图重写静态方法,Java不会阻止你这么做,但你却得不到预期的结果(重写仅对非静态方法有用)。重写指的是根据运行时对象的类型来决定调用哪个方法,而不是根据编译时的类型。让我们猜一猜为什么静态方法是比较特殊的?因为它们是类的方法,所以它们在编译阶段就使用编

2017-08-29 00:08:23 2565

转载 ArrayList vs. LinkedList vs. Vector

1. List概览List,就像它的名字暗示的一样,是一组排列有序的元素。当我们讨论List的时候,很容易将它和Set作比较。Set是一组唯一的而且排列无序的元素。下图是集合类的层次结构图。你可以总体上知道我们今天讨论的主题。2. ArrayList vs. LinkedList vs. Vector从上图可知,它们都实现了List接口。它们的用法差不多,主要的区别在于它们对于不同操作的操作速

2017-08-29 00:06:22 326

转载 Java中的equals()和hashCode()契约

java.lang.Object类中有两个非常重要的方法:12public boolean equals(Object obj)public int hashCode()理解这两个方法非常的重要,尤其是将用户自定义的对象添加到Map中的时候。有时候就算是久经沙场的老程序员也弄不清楚该如何正确使用它们。这篇文章中,我将用一个例子让大家看看大家经常会犯的错误,然后解释equals()和hashCod

2017-08-29 00:04:21 332

转载 HashSet vs. TreeSet vs. LinkedHashSet

Set集合不包含重复的元素,这是使用Set的主要原因。有三种常见的Set实现——HashSet, TreeSet和LinkedHashSet。什么时候使用它们,使用哪个是个重要的问题。总体而言,如果你需要一个访问快速的Set,你应该使用HashSet;当你需要一个排序的Set,你应该使用TreeSet;当你需要记录下插入时的顺序时,你应该使用LinedHashSet。1. Set接口Set接口继

2017-08-29 00:01:56 258

转载 HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap

Map是最重要的数据结构。这篇文章中,我会带你们看看HashMap, TreeMap, HashTable和LinkedHashMap的区别。1. Map概览Java SE中有四种常见的Map实现——HashMap, TreeMap, Hashtable和LinkedHashMap。如果我们使用一句话来分别概括它们的特点,就是:HashMap就是一张hash表,键和值都没有排序。TreeMap

2017-08-28 23:59:21 342

转载 HashMap的工作原理

先来些简单的问题“你用过HashMap吗?” “什么是HashMap?你为什么用到它?”几乎每个人都会回答“是的”,然后回答HashMap的一些特性,譬如HashMap可以接受null键值和值,而Hashtable则不能;HashMap是非synchronized;HashMap很快;以及HashMap储存的是键值对等等。这显示出你已经用过HashMap,而且对它相当的熟悉。但是面试官来个急转直

2017-08-28 23:57:25 257

转载 如何更好的设计RESTful API

如何更好的设计RESTful API当您的数据模型已开始稳定,您可以为您的网络应用程序创建公共API。 你意识到,很难对你的API进行重大更改,一旦它发布,并希望尽可能得到尽可能多的前面。 现在,互联网对API设计的意见有很多。 但是,因为没有一个广泛采用的标准在所有情况下都有效,所以你前面有一堆选择:你应该接受什么格式? 你应该如何认证? 你的API是否应该版本化?构建API是您可以做的最重要的事

2017-08-25 09:58:27 489

转载 Filter过滤器详解

Filter简介Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。它主要用于对用户请求进行预处理,也可以对HttpServletRe

2017-08-19 00:01:34 807

转载 Redis基础

随着互联网的飞速发展和大数据云计算概念的普及 ,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量, 这个时候需要一种能够快速存取数据的组件来缓解传统数据库服务I/O的压力,解决系统性能上的瓶颈.本篇文章的主要目的是为了让大家初步了解Redis内存数据是什么,在大型分布式系统架构中有什么作用,以及Redis内存数据库在实际项目中怎么应用。分布式有什么用1) 将系统功能模块化,且部署在不

2017-08-15 18:36:38 320

转载 Charles4.0最新版破解(更新至4.1)

前言​ 现在在OSX下办公,开发中Charles作为非常优秀的一款抓包工具必不可少。之前的3.x版本是公司的资管给输入的注册码,用着非常爽。今天突然提示可以升级为新版本,好奇和欣喜的心情就下载并安装了。万万没有想到,替换旧应用居然不会保留注册信息。Orz。本着不麻烦别人的初衷,尝试着自己动手破解。于是就这样踏上了一条不归路。开门见山​ 先放出快速破解的方法给想快速解决的朋友。下载破解好的ch

2017-08-14 18:36:00 1438

转载 Java动态代理机制详解

在学习spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是Java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口,一

2017-08-13 09:59:29 200

转载 SQL中 decode()函数

decode()函数简介:主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);使用方法:Select decode(columnname,值1,翻译值1,值2,翻译值2,…值n,翻译值n,缺省值)From talbenameWhere …其中columnname为要选择的table中所定义的column,·含义解释:decode(条件,值1,翻译值1,值2,翻译值2,…值n,翻译

2017-08-12 10:37:22 3342

转载 说说 JAVA 代理模式

事例小张是一个普普通通的码农,每天勤勤恳恳地码代码。某天中午小张刚要去吃饭,一个电话打到了他的手机上。“是XX公司的小张吗?我是YY公司的王AA”。“哦,是王总啊,有什么事情吗?”。沟通过后,小张弄明白了,原来客户有个需求,刚好负责这方面开发的是小张,客户就直接找到了他。不过小张却没有答应客户的请求,而是让客户找产品经理小李沟通。是小张着急去吃面而甩锅吗?并不是,只是为了使故事可以套到代理模式上。我

2017-08-11 20:55:31 208

转载 Spring Data JPA使用复合主键

演示环境MySQL 5.7JDK1.8spring-data-jpa 1.10.4.RELEASEhibernate 5.1.2.Final这里演示一个余额宝的例子,一个用户一天一条记录,表示一个用户一天的收益情况。其中,用户ID,日期是复合主键项目总体结构如下:下面依次贴出源代码pom.xml[html] view plain copy print?<project xmlns=“h

2017-08-11 16:15:11 692

转载 详解equals()方法和hashCode()方法

前言Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和hashCode()都不是final方法,都可以被重写(overwrite)。本文介绍了2种方法在使用和重写时,一些需要注意的问题。目录一、equal()方法二、hashCode()方法  1、Object的hashCode()

2017-08-10 22:52:25 177

转载 详解Tomcat 配置文件server.xml

详解Tomcat 配置文件server.xml 前言Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控

2017-08-10 21:27:13 551

转载 使用JPA实现乐观锁

乐观锁的概念就不再赘述了,不了解的朋友请自行百度谷歌之,今天主要说的是在项目中如何使用乐观锁,做成一个小demo。持久层使用jpa时,默认提供了一个注解@Version先看看源码怎么描述这个注解的/** * Specifies the version field or property of an entity class that * serves as its optimistic lock

2017-08-10 16:54:53 544

转载 [JavaEE - JPA] 7. ORM的核心注解 - 关系类型

本文继续介绍JPA ORM的核心注解中和关系映射相关的部分。关系映射的处理绝对是一个JPA应用最为重要的部分之一。关系映射处理的好,不仅仅是建模上的成功,而且在程序性能上也会更胜一筹。关系映射处理的不好很容易造成程序性能底下,各种Bug频繁出现,而且这些Bug通常还会比较隐蔽,总是在关键时刻掉链子。我想这也是为什么很多开发人员说JPA入门容易,精通难得原因之一。因为关系确实不是那么好处理的,不仅需要

2017-08-10 16:38:31 191

转载 [JavaEE - JPA] 6. ORM的核心注解 - 基础类型以及嵌套类型

本文继续介绍JPA ORM的核心注解中和基础类型映射相关的部分。基础类型映射所谓的基础类型映射,实际上就是Java中定义的数据类型应该如何被JDBC转换成数据库所支持的数据类型。而这些基础类型,主要包括了以下9种:简单类型:byte,int,short,long,boolean,char,float以及double简单类型对应的包装类型:Byte,Integer,Short,Long,Boole

2017-08-10 16:10:00 237

转载 [JavaEE - JPA] 5. ORM的核心注解 - 访问方式,表映射以及主键生成

从本篇文章开始,会系统性地介绍JPA中用来实现对象关系映射(Object Relational Mapping)的核心注解,以及基础类型,关系类型,嵌套类型以及集合类型的映射方式。注解种类在探讨实现JPA中各种映射的方式之前,可以先看看JPA中的注解类型。 由于ORM这一机制涉及到了两个方面:对象(内存模型)以关系数据(关系型数据库)。而显然我们在配置ORM的各种规则时,只能在Java程序中完成。

2017-08-10 15:39:58 260

转载 [JavaEE - JPA] 4. EntityManager相关核心概念

前三篇文章花了一些笔墨介绍了事务的概念以及在EJB和spring Framework中分别是如何完成事务管理的。之所谓花了比较大的代价来介绍事务主要也是因为不管在什么类型的持久化应用中,都包含下面两个关键点:事务管理对象关系映射(ORM)而JPA主要定义的就是和对象关系映射(ORM)相关的内容。从本篇文章开始,会系统性地介绍JPA的方方面面。核心概念及其关联关系首先,当然是介绍最核心最重要的E

2017-08-10 15:30:11 252

转载 [JavaEE - JPA] 3. Spring Framework中的事务管理

前文讨论了事务划分(Transaction Demarcation)在EJB中是如何实现的,本文继续介绍在spring Framework中是如何完成事务划分的。我们已经知道了当采用Container事务类型的时候,事务划分主要有以下两种方案(参考这里):使用JTA接口在应用中编码完成显式划分在容器的帮助下完成自动划分在使用JavaEE的EJB规范时,这两种方案分别被实现为BMT以及CMT,关

2017-08-10 15:12:29 277

转载 [JavaEE - JPA] 2. EJB中的事务管理

在上一篇文章中介绍了事务的基本概念,包括事务的ACID性质,以及事务的类型并且稍微提到了事务划分。对于任何一个需要持久化数据的应用而言,事务划分(Transaction Demarcation)的规划都是非常重要的一环。如果规划的不好,轻则影响性能,重则会导致在某些情况下数据发生不一致,从而严重影响业务逻辑的顺利进行。本文继续介绍事务划分在当前JavaEE技术体系下基于EJB的实现方案。虽然EJB算

2017-08-10 15:10:55 299

转载 [JavaEE - JPA] 1. 事务的基础概念

现在任何应用都需要数据持久化。否则就不算是一个完整的应用。那么对于一个数据持久化而言,最重要的无外乎两方面:事务管理(Transaction Management)对象关系映射(Object Relational Mapping)本文作为JPA(Java Persistence API)这一系列文章的首篇,就来先谈谈事物管理相关的一些概念和基础。事务(Transaction, TX)事务管理,

2017-08-10 14:56:17 219

原创 Spring-data-JPA生成JPQL语句方法名称中支持的关键字

方法名称中支持的关键字关键字示例JPQL 片段AndfindByLastnameAndFirstname… where x.lastname = ?1 and x.firstname = ?2OrfindByLastnameOrFirstname… where x.lastname = ?1 or x.firstname = ?2Is,EqualsfindByFirstname,

2017-08-09 15:45:56 4515

原创 Spring与Redis整合

第一步:redis设置密码: 打开redis.conf文件,搜索:requirepass找到:# requirepass foobared 去掉前面的#,然后将foobared替换成你的密码即可,然后重启Redis,在登录时通过 -a 参数指定密码, 当然也可以不指定密码,在操作的时候再指定密码(执行命令:auth “yourpassword”) 若master配置了密码则slave也要配置

2017-08-08 15:41:42 280

原创 This application has no explicit mapping for /error, so you are seeing this as a fallback.

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Aug 04 17:48:02 CST 2017 There was an unexpected error (type=Not Found, status=40

2017-08-04 18:01:05 18940 7

原创 Intellij IDEA使用笔记(持续更新...)

idea快捷键:1、设置自己的缩写模板 file–》settings–》liveTemplates- 主要是之前习惯了main,syso等快捷键 2、生成get-set快捷键:Alt+Insert 3、插件Translation:安装后选中单词按下快捷键ALT+1即可。 4、查看返回结果:Ctrl + Q 5、抛出异常,导包:Alt + Enter 6、捕捉异常:Ctrl+Alt+T 选择Try-Ca

2017-08-03 15:42:58 386

轻量级Django.pdf下载电子版带目录完整版

轻量级Django.pdf电子书非常完整,高清下载,相信在你的Python生涯中能用到它! 轻量级Django 带目录 PDF版官网,轻量级Django电子版下载。原版《轻量级Django》是由Lightweight Django打造的一本由浅入深介绍、讲解Python框架的书籍

2017-07-09

130个微信小程序源码

喜欢看源码的,来一波

2017-06-27

Django使用指南

Django使用指南,官方的指南,包含一个完整的投票系统的示例

2017-05-03

Spring-data-redis使用指南

Spring-data-redis使用指南

2017-04-27

微信开发手册离线版

微信公众号开发手册,离线版,可随时打开,不用流量随时看 如果不能正常打开,那么请鼠标右键点击手册,在弹出菜单中选择“属性”,选择“解锁”,就能正常看了。 另外, 如果字体太大或太小,在 文档页面中可 按下 Ctrl 键的同时滚动鼠标就可以调整字体了

2017-04-20

Spring MVC 4.2.4.RELEASE 中文文档高清.pdf版下载

Spring MVC 4.2.4.RELEASE 中文文档,重要的说三遍,中文版中文版中文版

2017-04-18

JDK1.8API 中文版

JDK1.8API 中文版,你值得拥有

2017-04-17

httpClient使用指南最新版

Httpclient,一个我们平时开发时经常用到的组件

2017-04-05

ganttproject-2.6.6

甘特图,项目管理的好助手,可以很好的直观的看到你的计划与安排。

2017-02-21

阿里巴巴Java开发规范

阿里巴巴Java开发规范手册,规范是为了节约更多的时间,减少维护成本

2017-02-13

freemaerker手册 中文版

中文版,中文版,

2017-01-17

Spring依赖

想自己根据文档搭建一个Spring,SpringMvc框架,而不是直接照搬的话,这个地址你应该是需要的

2017-01-12

微信小程序UI模板

微信小程序几套UI模板,对于前端功力不够的同学来时可是如获至宝,比如说我

2017-01-09

微信小程序官方文档地址

微信小程序官方文档链接

2017-01-05

微信小程序入门指南 高清完整.pdf版下载

微信小程序也是一种趋势,抢占先机最重要,我先去抢先机去了

2016-12-28

亚马逊部署web应用程序 中文版

还是中文版好用

2016-12-22

亚马逊云服务器入门中文版

亚马逊云服务器入门中文版,中文版你值得拥有

2016-12-22

亚马逊Linux用户指南中文版

中文版的指南,你值得拥有

2016-12-22

《Java多线程编程核心技术》作者高洪岩

此书和《Java并发编程实战》相反,这本书的特点是大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。 有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。

2016-12-03

VMware Workstation pro序列号

安装VMware Workstation pro序列号

2016-11-30

MyEclipse10破解

文件包含详细的破解说明,以及破解工具,亲测多次没问题,你值得拥有!

2016-11-25

jd-gui.exe打开class文件

直接查看class文件

2016-11-18

FTP上传工具

flashfxp是一个功能强大的 FXP/FTP 软件,融合了一些其他优秀 FTP软件的优点,如像 cuteftp 一样可以比较文件夹,支持彩色文字显示;像 BpFTP 支持多文件夹选择文件,能够缓存文件夹;像 LeapFTP 一样的外观界面,甚至设计思路也差相仿佛。支持上传、下载及第三方文件续传;可以跳过指定的文件类型,只传送 需要的文件;可以自定义不同文件类型的显示颜色;可以缓存远端文件夹列表,支持FTP代理及 Socks 3&4;具有避免空闲功能,防止被站点踢出;

2016-11-18

eclipse反编译插件

Java反编译工具,直接放入eclipse安装目录的插件包即可,非常好用

2016-11-18

Nexus 2.10.0

Nexus是Maven仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的SNAPSHOT版本管理,来进行模块间的高效依赖开发,下面会一一描述。 虽然你可以通过中央仓库来获取你所需要的jar包,但是现实往往是存在很多问题: 网速慢,你可能需要花很长的时间来下载你所需要的jar 如果你的公司很大,有几百甚至几千人再用Maven,那么这些人都去通过中央仓库来获取jar,那么这是一个很大的资源浪费 如果存在模块之间的依赖开发,你的snapshot版本是不能够被你的伙伴很方便的获取。 在实际开发过程中,有些jar的版本可能在中央仓库里面不存在,或者更新不及时,你是获取不到这个jar的。 所有以上问题,通过Nexus这个日益流行的仓库管理器可以轻松的解决。

2016-11-18

Solr使用指南

Solr使用指南,操作步骤很详细

2016-11-18

Solr 下载地址

文档包含Solr各个版本的下载地址

2016-11-18

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

TA关注的人

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