自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FeiChangWuRao的博客

记录自己成长

  • 博客(325)
  • 资源 (4)
  • 收藏
  • 关注

原创 如何使用WEB前端模板

着你需要有一个自己的前端工程大体框架,买模板只是把一些样式设计卖给你,你还是要有自己前端框架,把这些整合进去。不是打开时,全是现成的东西。添加模板文件到自己web工程里面,把上面这些文件夹添加进去,看自己的文件情况,一般来说按我看法就是不一定是放在根目录里面。首先创建一个前端工程,我这里用的是Bootstrap5,你也想弄一个的话可以翻一翻我前面关于Bootstrap5和Webpack的工程构建博客。下载模板,既然是Bootstrap,我们下载对应类型的模板,我是直接从Bootstrap官网下载的模板。

2024-04-19 00:25:25 65

原创 搭建Bootstrap5+Webpack项目

你可能会问Webpack是什么,这是一个打包工具,提供了一种方式,打包JavaScript应用程序的资源,JavaScript,CSS,图片这些。我们这里的是npm来安装下载Bootstrap,当人你也可以使用别的工具yarn,RubyGems等其他的工具来下载,这里是用npm命令行输入命令的形式下载Bootstrap。安装 Bootstrap。后面我们要加入一些额外的依赖,比如css的加载器,sass加载器,style加载器,,postcss加载器,以及autoprefixer支持不同浏览器CSS代码。

2024-04-18 15:19:36 371

原创 Java web工程的Jar包启动以及一下要注意的问题

WAR文件的结构遵循Java EE标准,包含了Web应用程序需要的所有内容,如:JSP、Java类、图片、库文件(lib文件夹下的JAR文件)、部署描述符(WEB-INF/web.xml)等。web工程是多种模块/module的形式,这些模块是依赖关系,如果我们的修改不是对应web模块,我们打包的module模块的jar包是没有更新修改,因为jar包里面对应修改的依赖jar包没有更新。我们找到对应的jar包的位置,可以直接在idea的命令行里面执行java的jar命令来执行启动jar包。

2024-02-24 11:34:24 434 1

原创 时间戳的大小写的坑

这里也会有个问题,就是用错的情况下,所有时间在上午显示转换是正常的,但是下午的就会后我们直觉的“几点”有差异。但是这个要比2023年12月31日,周年制要好弄一点,我这个“周日是一周的第一天”这个规则,而且还是属于国际标准下的一个标准之一,属实让我当天没想开,之前只是知道如果这一周跨周了不行,但没想当这一周的开始和结尾是什么?首先是年份,最常用的是小写yyyy,如果用的是大写那采用的是周年制,顾名思义这个年份还要看周的限制,假如对应的日期所在的周跨年了,那这个年也要跟着“加一”。我的公众号:我是坑货。

2024-01-15 02:33:13 635

原创 @Aspect注解切面编程

但是还有一个特点就是AOP,就是面向切面编程。市面常见的资料一举例子就是日志,关键是真正项目我们都会引入日志包,根本不需要你去设置什么切面。所以对于面向切面编程,到底是个啥,估计有的人还是有点懵。我们经常说Spring两个特点,一个是IOC控制反转,这个好说你要是从之前那种需要哪个就要创建那个对象的常规基础面向对象编程走过来,基本来说你大概明白IOC这个给你省了不少事。这里我这里准备用项目中使用的一个切面编程作为例子。这里我首先介绍一下@Aspect注解。

2023-10-10 20:14:20 677

原创 conda安装和使用

这里我这提供一个conda使用例子,就是配置一个独立的 Python 3.10 的环境,并安装好 JupyterLab、OpenAI 以及后面要用到的一系列开发包。你可以在Anaconda Prompt终端上输入上面的命令,这样你在使用conda的过程中,也配置一个独立的 Python 3.10 的环境,并配置一系列开发包。如果现在你想使用python的话,也会涉及到包管理的问题,Java有maven来帮助,python也有类似的工具,conda算是使用的比较多的一个。在创建环境后,需要激活它才能使用。

2023-06-28 14:38:12 1459

原创 Midjourney使用教程:三 图片风格提示

这时候你不在满足简单的提示生成的Midjourney的默认风格图片,实际上你可以通过一些关键词做提示,来改变输出的图片风格,像这些提示词其实并不高大上,但是他的反馈效果确实显而易见,就好比我们用chatGPT有时候会设定一个角色,或者添加一个补充信息,返回的质量会提高不少。类似的提示:1700年代,1800年代,1900年代,1910年代,1920年代,1930年代,1940年代,1950年代,1960年代,1970年代,1980年代,1990年代。类似的提示:决定,快乐的,困,生气的,害羞的,尴尬。

2023-06-25 16:26:46 1621

原创 MidJourney使用教程:一 第一次怎么用Midjourney

还有就是公共频道,那么多人用,自己的图还没完全出完,就被顶到上面去了,有没有什么好的方式,有一个自己的“独享的”空间?创建成功后,你要把MidJourney机器人引到你创建的服务器,找到之前的Midjourney服务器,随便找一个出图的房间,找到侧面成员栏,找到Midjourney机器人点击,选择“添加服务器”到自己的新建的服务器上,这样就可以在你自己的服务器输出图片。V的意思采用图片的构图形式,重新生成一组类似的图片,V1/V2/V3/V4的顺序与U的顺序一样。创建一个服务器,还是那个“加号”,

2023-06-20 11:18:46 1091

原创 MidJourney使用教程:二 初识Prompts

虽然和我搞笑图是有出入的,但是图片地池塘,岸边这些都有,毕竟解析动图相当于微小地短片,靠图片完全展示出还是有难度地,我对于这个动画风格的参数还是很满意的,因为默认的风格有些prompts产生的图片会有点阴沉,甚至有点不舒服地感觉。基础提示,就是很基础,很简短的提示,官网上说可以简单一个单词,一个短多,甚至一个表情符号(emoji),这部剧不服气了,我直接来个money单词来试一下。效果还行(至于他说的表情符号,我认为的意思是上传图片,这个我后面高级提示会有演示)主要组成部分是图片提示,文字提示,参数。

2023-06-16 02:12:48 1378

原创 Git教程:标签

tag 标签其实就算一个,我们下载一些开源项目的时候,在GitHub上经常看到版本,有的项目是通过tag来管理版本的,所以学习一下标签管理对于项目版本还是有很多帮助的,尤其是我们自己创建一个项目,设置版本设置tag,这些和分支,仓库这些开发中常用的一样重要,这是你要交付给被人使用的。这样我们想去找找个版本,就不用几比较难记的commit的版本号了,毕竟靠人脑记这些就挺不靠谱的,看一个关于加密的项目的文档,作者对人脑的对于一些比较长比较晦涩的词语记忆的形容是,“最强随机数生成机器”。

2023-05-19 18:12:13 1049

原创 windows的nvm安装

最近在看一个加密的教程,里面有一个关于node的js加密的代码,代码报错,初步判断可能是node的版本的问题。有一个管理node版本的工具nvm,可以来管理node版本,可以下载安装和切换使用环境的node版本,很希望我们其他的编译环境也可以出类似的工具。

2023-05-15 14:59:04 565

原创 Mockito实战

为什么要有个Mockito,本身Junit就可以做单元测试,为什么还要加一个Mcokito作为单元测试框架。实际上两者不矛盾,甚至两者是搭配着使用的,确切的说Mockito是一个单元测试模拟框架,来帮助发现隐藏bug,提高代码质量。为什么会有这样的作用呢,具体一点的实践场景都有哪些?首先Mockito注重的是一个模拟,本身mock本意就有模仿假装的意思在里面,假设我们的代码需要跟第三方联调,我们需要人家给我们数据,设置前置条件。实际工作中就知道,工作本身可能不太难,但是和人交流协同有时候更消耗时间。

2023-04-19 16:26:17 915 2

原创 flowable实战(四):构建命令行程序

其实不需要多做什么,直接点击对应的SimpleDemo下面的pom文件,点击右键找到“add maven xxx”的就可以了,转化成maven工程就可以直接上手用了。画的图背后实际还是xml文件,如下,但是其中很多部分都是通用的,但是设计比较复杂的流程或和比较多的话,还是图更直接一点。创建一个maven工程,这个就不赘述了,文档还有其他关于如何创建的maven工程的文章也很多,一搜一大把。有流程了,只是定义了一个而已,实际上我们工作流要的是一个个“审批”,这就是根据流程定义得到的流程实例。

2023-01-10 19:42:36 896

原创 UNION ALL和LEFT JOIN的区别和使用场景

left join 应该是最常用的一个连接,但是有时候left join也不能包打天下。因为left join是一个获取笛卡尔积的临时表,如果这些的表都是一对一的关系,怎么join都没事。但是实际上我们会遇到很多一对多的对应情况,就需要按照实际情况来判断。举个例子,表A和表B的关联的关系是一对多的,表A和表C也是一对多的情况,这里A和B,C的关系是关联起来一对多,也有A和B,C关联不上得情况。我们这边通过统计数量,b_staus为1取关联B的b_count,c_staus为2时取关联C的c_count。

2023-01-04 22:21:16 2484

原创 MySQL的一些指令,函数以及关键字

因为对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能。如果不是索引字段的话其实还好,毕竟MySQL里面会有不少buffer,比如sort buffer这些,实际上是在内存上操作(当然太多了也会走磁盘),其实也挺快的。这里要注意的是id指的是pid,我们发现阻塞的进程直接kill pid就可以。这个里面我准备记录一些比较有意思的MySQL的指令和函数,当然使用函数的时候我们要注意,会不会因为函数导致不走索引,走全表扫描的情况。可以通过show processlist来查看。

2023-01-03 14:41:06 599

原创 idea的一些配置分享

有时候我们选择配置,需要重新build才能切换成功,比如说你想用UAT1,但是之前你用的是dev分支。像需要指定环境,其实可以直接配置就可以active profilese 里面添加对应的环境。

2022-12-12 15:32:03 230

原创 Java函数接口:Supplier

之前我们一提到Java8新特性,两个常提的stream和Lambda表达式,实际还有一个大的方向就是函数接口。但是stream和Lambda表达式,使用场景也比较多,基本一推出来,基本日常场景就能用到。但是函数接口就不一样,他需要他自己的使用场景,如果不理解,只背他的定义,实际没啥帮助。这里我就通过介绍使用场景的方式来说一下Supplier函数接口。

2022-11-14 10:44:39 3375

原创 spring源码学习:spring初始化流程

首先借个图,说明一下spring的bean的整个生命流程。销毁什么的这个看图就知道怎么回事,使用的话一般都是纯业务,而且我们更关心spring是怎么初始化的,初始化成我们定义的那个样子。我们就是以这个出发点来看一下spring的大概流程。

2022-10-29 15:06:34 1109

原创 Java函数式编程

函数式编程是程序面向数学的更底层的抽象,将计算过程描述为表达式。简单点讲就是,函数内部涉及的变量都是局部变量,不会像面向对象编程那样,共享类成员变量,也不会像面向过程编程那样,共享全局变量。同样的入参,不管怎么执行,得到的结果都是一样的。Functional Programming 函数式编程,这里的函数类似于一个表达式,类似我们学习中的数学公式,输入端是确定的,那输出端也是确定的,这种就是没有副作用的纯函数。面向对象的编程单元是类或对象,面向过程的编程单元是函数,函数式编程的编程单元是无状态函数。

2022-10-27 19:48:08 584

原创 JDK中各种各样的注解

Deprecated 可以用来注解类、接口、成员方法和成员变量等,用于表示某个元素(类、方法等)已过时。当其他程序使用已过时的元素时,编译器将会给出警告。注解现在使用的场景原越来越多,各大框架的也有自己的注解,这里就是直接列举一下我们再看JDK源码自己的一些常用的注解,使用场景。这些注解平时也会有使用。这个过时的注解其实很有用,比如你旧的接口不想让别人用,但是比要提醒人家,你可以用这个注解。

2022-10-15 20:30:58 187

原创 Java注解:Java注解的基本认识

注解和别的源码对比,有的时候更难以理解,因为很多注解也是靠别的注解来实现的,相当于一层套一层,你对注解不熟悉,你对注解的组成注解使用以及用途肯定也不不会太熟悉。比如说我么们常用的spring注解,有的spring注解是通过别的spring注解构成的,别的spring注解是spring自定义的,自定义的注解是依靠,JDK的元注解(元注解就是用来定义注解的注解)。但是可能会对自己使用的一些注解,是干什么的,来自那个框架那个包有了解,但是具体这个注解是怎么实现,大致结构却是不清楚的。

2022-10-14 11:49:13 221

原创 设计模式:策略模式,模板模式,责任链模式

策略模式,模板模式,责任链模式这三个模式应该是框架中最常用,使用频率最高的设计模式,本身三者就是行为型设计模式,对比创建型设计模式,是用来创建对象,结构型设计模式是搭骨架这种,基本就是一个地方用到,别的地方就不会用了,或者是比较基础底层的。行为型设计模式本身就是为了解决我们业务逻辑扩展的一些痛点,比如说也复杂了,需要对应的设计模式来解决扩展性和优化逻辑,这个其实要比上面两者的情况更多。这边主要是分析回顾一下这三者。

2022-10-13 19:39:06 496

原创 设计模式:工厂模式和建造者模式

有时候甚至感觉传统的建造者模式,有时候特别像工厂模式,因为有时候我们会给建造者抽象类定义几个“模板”,这几个模板特别像工厂模式里面的。建造者模式,是自定义的模式,也许我就一个实现类ConcreateBuilder,但是里面参数我自己往里面塞,我可以理论上有无数种类型的。但是这种方式特别像我们常看到的一些比较肤浅的关于设计模式的文章,我们通过去记结构去记名字,实际上区分不出来什么,因为设计模式很多结构差不多,而且实际中最佳范例或者源码里面也不会标出这些,命名不规范这些。对比工厂模式和建造者模式。

2022-10-08 11:29:30 1180

原创 设计模式:中介模式

Observer定义了一对多(one-to-many)的依赖关系, Mediator封装了多个对象互相之间的交互方式. Oberver定义了单向的订阅关系, Mediator通过引入中间件的方式解决多个对象之间混乱的依赖关系与通信方式.中介模式听名字作为中介,在复杂的调用关系中做个中介传递(类似于在状态机中弄一个中心点,所有的关系状态转移交给中介来处理),同样也是一个重在实用意义,实现结构倒是不要求什么,实际上结构跟观察者比较像。中介模式定义了一个单独的(中介)对象,来封装一组对象之间的交互。

2022-09-23 11:07:54 308

原创 设计模式:解释器模式

比如“ 8 3 2 4 - + * ”这样一个表达式,我们按照上面的语法规则来处理,取出数字“8 3”和“-”运算符,计算得到 5,于是表达式就变成了“ 5 2 4 + * ”。然后,我们再取出“ 5 2 ”和“ + ”运算符,计算得到 7,表达式就变成了“ 7 4 * ”。最后,我们取出“ 7 4”和“ * ”运算符,最终得到的结果就是 28。解释器模式也是一个意义用途大于结构,实现方式不固定,并且实际用的并不多,具体一个实现是规则引擎,但是现在有开源或者比较成熟的规则引擎方案。

2022-09-22 10:52:52 130

原创 idea和datagrip的快捷鍵

idea和datagrip都是一家公司出的,而且idea可以直接使用集成的datagrip作为数据库工具。直接一个客户端一边debug的同时直接在工具里查数据。

2022-09-21 14:07:59 793

原创 设计模式:命令模式

其实这个应该挺好理解的,可以跟工厂模式,策略模式做个对比,工厂模式注重的是创建不同的对象,毕竟是创建型设计模式。适配器,代理,装饰器,桥接,: 他们的共同点是:对方法的增强 不同点: 适配器模式的作用是"适配",通常用于适配不同的组件,新旧系统。都是为了实现排序 命令模式中不同的命令具有不同的目的,对应不同的处理逻辑,并且互相之间不可替换 而简单工厂更侧重返回一个创建的对象。单例模式和享元模式,缓存,静态工厂方法: 他们的共同点是:对象的复用 不同点: 应用享元模式是为了对象"共享使用",节省内存。

2022-09-21 11:33:48 160

原创 设计模式:快照模式

第二,快照本身是不可变的,理论上讲,不应该包含任何 set() 等修改内部状态的函数,但在上面的代码实现中,“快照“这个业务模型复用了 InputText 类的定义,而 InputText 类本身有一系列修改内部状态的函数,所以,用 InputText 类来表示快照违背了封装原则。快照模式是一种行为模式,行为模式可以说是设计模式最大头的一部分,作为行为的解耦,相比于创建型,结构型,实际上不改架构的单纯做业务我觉得行为模式更多一些,搭配别的模式花样更多。备忘录模式是如何做到不违背封装原则的?

2022-09-20 11:53:47 525

原创 设计模式:访问者模式

尽管 Java 支持函数重载,但 Java 设计的函数重载的语法规则是,并不是在运行时,根据传递进函数的参数的实际类型,来决定调用哪个重载函数,而是在编译时,根据传递进函数的参数的声明类型(也就是前面提到的编译时类型),来决定调用哪个重载函数。在对象结构的一次访问过程中,我们遍历整个对象结构,对每一个元素都实施accept方法,在每一个元素的accept方法中回调访问者的visit方法,从而使访问者得以处理对象结构的每一个元素。执行对象的哪个方法,根据方法参数的运行时类型来决定。访问者者模式的英文翻译是。

2022-09-19 11:57:04 234

原创 设计模式:迭代器模式

迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。

2022-09-15 11:16:10 175

原创 设计模式:责任链模式

责任链模式是一种挺特别的模式,模板和策略一个是通过抽象父类一个听过接口实现来匹配对应的方案不同,责任链搞了一个长链,对应的多种方案都在这个责任链上。当然有的地方也把责任链叫做职责链,我这边感觉责任链特别顺嘴。责任来在GoF里面的定义:it.就是最起码超过一个可能会处理解决的请求的一堆对象,将他们链在一起来解决。直到这个请求被这个链条上的一个对象能处理为止。在职责链模式中,多个处理器(也就是刚刚定义中说的“接收对象”)依次处理同一个请求。

2022-09-13 16:22:43 423

原创 设计模式:策略模式

结构很简单:策略的接口,一堆对应策略接口的实现类}@Override//具体的算法...}}@Override//具体的算法...}}

2022-08-29 14:27:16 211

原创 设计模式:模板模式

每一个继承这个类的子类都要按照这个“模板”里面的“骨架”去实现具体的逻辑,每一个不同的子类,虽然是不同逻辑但大家的“骨架”结构是相同的,做到了“合而不同”,这也就体现了模板模式的优点:复用。除此之外,抽象类里可以有具体实现的方法,这些非抽象方法,可以在不修改这个代码结构的同时,让子类获取新的功能,同理父类扩展子类,子类也可以反过来扩展父类的方法,去自定义定制化一些东西。这里面复用体现最明显的是read方法,这里面第一个read是抽象方法,是需要子类自己去实现的,剩下的两个具体实现方法,其子类可以直接调用。.

2022-08-27 16:28:10 693

原创 设计模式:享元模式

这个设计模式享元模式,听名字的意思就是共享的单元,但是他的英文名称挺有意思的叫做“flyweight”,蝇量级拳手这个也挺有意思的,实际就是做一个共享的模块,里面是我们常用的,而且可以帮助我们减少创建对象,更好的节省资源,把重量级的活缩减成蝇量级的活。具体的例子,其实就是线上棋牌游戏,假设有很多个房间,每个房间都要有一副牌,牌的数量,花色,大小也就那些,假设我们玩的是一副扑克牌,一副扑克牌应该是54张,咱们完玩的是斗地主。不是的实际上,这个是包装类的优化,所谓的优化就是Integer类做了一个缓存。

2022-08-22 15:30:22 351

原创 关于java.lang.NoSuchMethodError修复Maven包冲突

根据具体情况我这里要exclude的是hutool-all这个,但是他这个比较有意思的是他是通过external-weixin第三方包引进过来的,你用maven helper这些工具他会要去对应父文件eclude去,但这肯定是不行的如果是第三方包的pom文件。但是问题来了,项目冲突是有的,但是没找到对应的xxxxx.实际上看图上知道,这是一个工具类的包,按理来说应该没什么问题,旧的系统跑着都没问题,这maven helper也没有对应冲突展示。找到引入external-weixin的地方,做如下修改。

2022-08-20 18:31:56 4226

原创 联表更新数据以及You can‘t specify target table ‘xxx‘ for update in FROM clause

最近遇到一个表的的问题,就是由于批量处理错误,把一个表的某个字段的删除掉了,现在解决方案是通过另一个表对应的一个字段进行补充。就是A 表的 b字段现在为空,但是可以通过 A表的的c字段关联C表c字段,通过C表中的b字段来回填A表中的b字段。我把aas.id in (1001) 给他一个确定的值,发现错就不保了,说明问题可能是IN里面的查找语句的问题。类似你更新A, 但是你是通过一个select语句来把你要修改A表的对应的id来去修改更新A,这样是不行的。我们一般来说都会选择方法二。...

2022-08-18 21:58:34 212

原创 flowable实战(三):关于流程图编辑

部署注意以下,实际这个war包你也可以理解是一个web项目,部署的方式都是你扔到你的tomcat里面的webapps下面,然后启动tomcat,tomcat会自动解压这个war包,你对应的输入就可以启动项目()。流程文件实际上就是我们之前介绍各种事件名词,最后会在xml文件中体现出来的,但实际种我们不是编写出来的,而是画出来的,一方面比较直观易懂,操作起来也相对人性了不少。流程图是流程定义部署的关键,毕竟手写流程xml文件,确实太难受了,就有点像以前spring的xml配置文件,最后跟个裹脚布一样。...

2022-08-16 20:23:17 2285

原创 Flowable实战(二):表结构以及变量表单介绍

发现很多教程很乱,有的是浅尝则止比如说就是一个demo就完事了,有的是比较乱,可能是之前使用过别的工作流,很多东西就直接带过,看的云里雾里的。比如说一些名词,都不清楚怎么回事。这里发现还是官方的文档不错,这里推荐一个材料是一个flowable的中文文档,涉及到的比较全面,不一定全看,但是可以当工具书一样查找使用。...

2022-08-13 18:09:33 5321 1

原创 关于转换JSON列表错误导致结果出错的问题

其实本身两个接口大部分代码是相同的,是直接拷贝过去的,其实就是最后的结果对象参数稍微有点区别,大部分逻辑都是重复的,又重新抄一遍写上去,又臭又长的,但是同一份数据竟然结果不一样。今天修改一个问题,就是不同端封装的不同对象,请求同一个接口,同一个数据,在通用的一个逻辑转换状态中获取到不同的状态的奇葩问题。最后是第二份JSON序列化的endTime成功序列化出来的,另一个是直接返回null,所以说在做转换的时候导致字段“丢失”。结果发现不对,实际状态转换的代码使用一样的,同一份数据却结果不同。...

2022-08-11 21:09:14 1188

原创 Flowable实战(一):启动事件与结束事件

工作流只要是涉及到组织审批和审核的情况下基本都需要,Flowable作为一个工作流现在比较流行的框架,算是activiti框架的修正版,国外这种情况还蛮多的就是,就是原班人马走了然后另起一家,据说硅谷没有竞业协议的说法,也不知道这个是不是真的。这里有两个简单的关于flowable的简单例子,一个是简单的整合的flowable的maven,还有一个是简单的springboot整合的项目,当然实际例子肯定不会那么简单,我看到的一些BPMN文件复杂的不像话,各种条件。前面的知识我也是摸着别人的入坑的。......

2022-08-10 11:30:21 3904

docekr-compose-demo

docekr-compose-demo

2022-01-19

类加载机制与动态代理的测试题

可以搭配我传的对应的课程

2017-02-21

JAVA类加载机制与动态代理

类加载机制与动态代理吗,讲得很好对得资源分。

2017-02-21

Java垃圾回收机制和内存分配

你认真演示了一遍,你就能明白JAVA的垃圾回收机制。当然文档写的不一定全面,比如文档当中关于老年区少年区有一页写的不是很完整,我也没有添加太多进去,但是还是很有很全面很有参考意义的。

2016-12-21

空空如也

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

TA关注的人

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