- 博客(504)
- 资源 (7)
- 收藏
- 关注
原创 【软件安装】Centos系统中安装docker容器(华为云HECS云耀服务器)
进入/etc/yum.repos.d目录下,查看是否存在docker相关的镜像,如果有的话,先删除对应的docker镜像源。docker安装成功之后,可以通过【docker --version】命令,查看docker的版本。】命令,此时控制台就会开始下载docker相关的东西,会提示是否继续,输入y即可。执行下面命令,先创建docker服务的软链接,并且启动docker服务。执行下面命令可以停止docker服务,也可以重启docker服务。在安装之前,首先执行下面的命令,删除旧版本的docker。
2023-11-16 22:48:31
1194
原创 【SpringBoot笔记42】SpringBoot集成knife4j生成接口文档
在实际开发过程中,后端需要提供对应的接口文档给前端人员,这样前端才可以根据文档进行开发,并且联调测试,这就引出了一个问题啦?接口文档怎么给到前端人员呢???写一个word文档,然后丢给前端开发吗?虽然这种方式是可以的,但是效率太低了,后端开发还得一边写代码,一边写word文档,太浪费时间了,为了节约时间(偷懒),各种接口文档工具就出现啦!swagger-ui:在代码中编写注解,启动程序后,就可以在swagger-ui提供的界面中看到对应接口,并且可以在线调试。
2023-11-04 18:23:34
280
原创 【软件安装】Windows系统中使用miniserve搭建一个文件服务器
在启动miniserve时候,可以通过【-u】参数开启文件上传功能,并且可以指定上传文件保存到哪个目录下面,如果不指定目录,那么默认就是上传到miniserve启动目录。在启动miniserve服务的时候,可以通过指定【-v】参数,开启控制台输出访问日志,这样每次访问文件服务器的时候,都会将访问的信息打印到cmd窗口中,如下所示。下载exe的可执行文件,miniserve服务器的exe文件直接下载就可以使用,不需要额外的安装之类的,双击exe文件就可以启动miniserve服务。
2023-10-26 23:33:12
693
原创 【软件安装】Linux系统中安装MySQL数据库服务
下载MySQL安装的方式有很多种,可以直接去MySQL官网下载Linux版本的安装包,也可以使用wget命令直接从指定地址下载。在MySQL解压之后的目录(mysql5.7.26目录)下面,创建一个my.cnf配置文件,可以在配置文件中添加一些内容。MySQL数据库启动的时候,默认是使用mysql用户启动的,所以我们需要在Linux系统中创建一个mysql用户。将mysql目录下的mysql.server文件,复制到/etc/init.d/mysql下面,命令如下。
2023-10-24 22:06:44
233
原创 【FTP文件下载】Java基于commons-net依赖包实现从FTP服务器下载文件(亲测可用)
为了能够模拟从FTP服务器上面下载文件,这里在开始之前,我自己在Windows电脑上搭建了一套FTP服务器,目的是用作测试环境,当然啦,在实际工作里面,肯定是用不到的啦,大家忽略就行,直接跳到第二部分。apache提供了一个commons-net依赖包,这个包主要是包含了一些访问网络的工具类以及一些常见网络协议的实现,例如:Echo, Finger, FTP、NNTP、NTP、POP3(S)、SMTP(S)、Telnet、Whois。我们就使用这个依赖来完成FTP文件的下载功能。
2023-10-15 16:44:27
207
原创 【下载共享文件】Java基于SMB协议 + JCIFS依赖下载Windows共享文件(亲测可用)
这篇文章,主要是介绍一下如何基于SMB协议,下载Windows共享文件,既然是Windows共享文件,那首先就需要有这么个测试环境,所以,我们第一步就自己搭建一个Windows共享文件服务。使用Java语言访问Windows共享文件,有一个现成的依赖库,叫做:jcifs,引入这个依赖就可以访问Windows共享文件,另外,这个库在2010年开始就不再更新了。在【共享】界面中,点击【共享】按钮,此时会再次弹出一个窗口,添加你需要共享目录的用户,然后点击添加,最后点击共享按钮即可。
2023-10-15 14:49:06
185
原创 【itext7】使用itext7将多个PDF文件、图片合并成一个PDF文件,图片旋转、图片缩放
最简单的合并方式,那就是读取两个PDF文件,然后将其合并成一个新的PDF文件,保存到服务器上面之后,在将这个新的PDF文件和下一个待合并的PDF文件进行合并,以此类推,最终可以得到一个完整的PDF文件,但是这种方式缺点在于,每一次合并之后,都需要新生成一个PDF文件,并且下一次合并之后,还要再读取这个PDF文件,这就会导致多次读取文件的过程,效率不是很理想。/*** 基于内存中的字节数组进行PDF文档的合并* @param firstPdf 第一个PDF文档。
2023-10-04 14:09:37
1137
原创 【SpringBoot笔记41】SpringBoot集成Sentry实现异常信息和日志内容的收集(包含详细步骤,注册Sentry账号、创建项目、收集异常信息等)
sentry是一款用于收集项目中的异常信息以及日志的第三方聚合平台,它可以将项目中出现的异常信息、日志等内容,全部保存到sentry平台里面,并且提供了可视化的界面用于查看对应的异常日志信息。其实,你可以将sentry看作是C/S模式的平台,其中我们的项目中需要引入sentry依赖,也就是我们的项目作为Client客户端,然后sentry会单独部署一个服务端,专门用于接收和保存Client客户端发送过来的异常日志信息,并且提供查看界面。
2023-09-19 22:55:54
137
原创 【SpringBoot笔记40】SpringBoot中@SendTo、@SendToUser、@MessageMapping、@SubscribeMapping注解介绍及其使用
SendToUser注解中,默认只会处理以【/user】开头的消息地址,因为@SendToUser注解标记的方法,是会被【UserDestinationMessageHandler】代理器处理的,当然,我们也可以自定义处理地址的前缀,这要在WebSocket配置类中设置。@MessageMapping注解是SpringBoot中提供的,它的作用是:当客户端向某个地址发送消息时候,此时会根据@MessageMapping注解映射的地址进行匹配,找到对应的映射地址之后,就会执行对应的方法。
2023-09-10 10:27:41
214
原创 【SpringBoot笔记39】SpringBoot + SockJS + Stomp实现WebSocket通信(建立连接、发送消息、订阅消息、断开连接)
MessageMapping注解是SpringBoot中提供的,它的作用是:当客户端向某个地址发送消息时候,此时会根据@MessageMapping注解映射的地址进行匹配,找到对应的映射地址之后,就会执行对应的方法。@SubscribeMapping注解是SpringBoot中提供的,主要作用是:指定一个订阅地址,当浏览器客户端订阅了某个地址之后,此时就会执行对应的方法,并且将对应方法的返回值立即返回给浏览器客户端。
2023-09-09 17:35:02
473
原创 【JasperReports笔记06】JasperReport报表开发之常见的组件元素(Table、Subreport、Barcode等)
TextField是一个基础组件,它表示的是一个文本域,可以设置一个表达式对象,例如:Parameters、Fields等,也就是说,TextField文本域组件可以在程序运行过程中,动态的显示文本内容。StaticText是Jasper中的一个基础组件,用于表示静态文本内容,它表示的内容在程序运行过程中是不可以改变的,在制作模板文件的时候,就已经固定了文本内容。Subreport是子报表组件,它可以在一张报表中嵌入另一个报表,从而实现父子报表的功能,父子报表我在之前的文章中有介绍了,可以看下这篇文章【
2023-08-31 21:07:34
616
原创 【JasperReports笔记05】JasperReport指定自定义字体文件,解决中文不显示问题
前面几篇文章,介绍了如何使用JasperReport开发报表,可以发现,我们之前的模板文件都是使用的英文,从来没有写过中文,这是因为,默认情况下,JasperReport是不支持显示中文,如果要显示中文,那么我们就需要自己指定采用的字体文件,下面就介绍一下,如何自定义字体文件,显示中文内容。
2023-08-26 21:44:08
576
原创 【MD5加密结果不一致问题】同一个文本字符串,使用MD5加密之后,得出的加密结果居然不相同
今天工作中,遇到一个奇怪的问题,我负责对接第三方的短信发送接口,接口中有一个入参是sign加签字段,根据短信内容进行MD5加密之后得到,于是我就是使用JDK自带的MD5加密算法,写了一个加密方法,代码如下:
2023-08-24 20:48:11
1621
1
原创 maven install打包报错There are test failures.\target\surefire-reports for the individual test results.
maven install打包报错There are test failures.\target\surefire-reports for the individual test results.
2023-08-22 21:44:32
633
原创 【JasperReports笔记04】如何使用Jasper Studio制作父子报表,并且通过Java + Parameters参数填充模板文件
目录。
2023-08-19 15:49:19
667
原创 【JasperReports笔记03】JasperReports之模板文件七大组成区域介绍(Title、PageHeader、ColumnHeader、Detail、ColumnFooter等)
Title区域是只会显示在模板文件的第一页最开头位置,注意啦,这个只会显示一次,并且只会显示在第一个页面里面,这个区域一般是设置整个模板文件的大字标题,例如:我们写论文的时候,都会在第一页中写【xxx毕业设计论文】,这个地方就是专门为此而设置的。Column Header是表头区域,它是在使用了Table表格组件时候,才会起作用的一个区域,Column Header是显示在Page Header区域的下面,并且是会显示在每一个页面中,位于Table表格的顶部区域。
2023-08-19 13:48:31
359
原创 【SpringBoot笔记38】SpringBoot基于jakarta.mail依赖实现发送邮件的功能(邮件发送)
发送邮件之前,我们需要知道发件人邮件、邮件服务器地址、邮件服务器、邮箱授权码(相当于发送邮件时候的认证密码)等信息,一般在实际开发中,这些信息都是作为配置信息存放在application.yml配置文件里面,SpringBoot已经给我们提供了mail邮箱的配置信息。到此,邮箱授权码就获取到啦,记住啦,这个东西是要放到application.yml配置文件里面的,并且不要随便让别人知道,不然别人就可以是要你的邮箱啦。接着点击【管理服务】,此时会跳转到安全设置界面,在这个界面中就可以生成【邮箱授权码】了。
2023-08-17 21:46:33
252
原创 【Python笔记02】Python之使用Pyinstaller将python源代码文件打包成exe可执行文件
这篇文章主要是介绍Pyinstaller打包exe文件,其中打包参数:-F:表示将代码打成一个exe可执行文件。-w:表示不会在CMD命令行窗口输出日志信息,如果你要查看输出信息,就不要使用这个参数。-i:指定ICO图标的文件。# 打包单个exe文件# 打包单个exe文件,并且CMD窗口中不输出信息# 打包单个exe文件,并且指定ICO图标。
2023-08-15 21:55:25
294
原创 【JasperReports笔记02】如何使用Jasper Studio中的table组件制作简单表格模板文件,并且通过Java + Parameters参数填充表格数据
可以发现,我们的创建列没有宽度好像太小,都没有占满整个table区域,你可以设置每一列的宽度,也可以直接选中table空白区域,然后在右下角区域可以设置列宽度自适应。这里我们现在点击next,进入到下一个窗口,这个窗口中我们勾选【Create an empty dataset】,也就是创建一个空的数据集。然后将Table组件拖拽到Detail区域里面,此时会出现一个弹出框,让你选择表格的数据源,也就是表格里面的数据从哪里获取。根据自己的实际情况来选择,我这里就选择了两个,即:表格的列头、表格的头。
2023-08-12 16:50:36
1309
原创 【JasperReports笔记01】Jasper Studio报表开发工具的安装以及使用Java填充模板文件内容
双击Jaspersoft Studio.exe文件,启动JasperReports报表工具,如下图所示:上图就是启动之后的欢迎界面,看着有点像eclipse开发工具对吧!没错,Jasper Studio就是基于Eclipse进行开发的,它可以单独使用,也可以作为Eclipse的插件添加到Eclipse开发工具中使用。可以看到在Jasper Studio的主报表区域有很多的组成部分,如下图所示:Title区域:这个区域只会在模板文件的第一页中显示,从第二页开始就不会显示,主要定义文件的标题内容。
2023-08-10 21:34:17
1104
1
原创 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)
Word文件有两种后缀格式,分别是:doc和docx,doc是Word2003之前使用的,docx是Word2007之后使用的,可以说docx是对doc的扩展和优化。我这篇文章中使用的Word模板文件就是利用docx后缀的,核心思想是将docx文件转换成对应的XML文件,然后修改XML文件中的内容,将其改成Freemarker模板引擎中的占位符,之后通过Freemarker渲染程序将占位符替换成实际的数据,并且将替换之后的模板文件转换成docx文档,这样就实现了根据模板文件生成Word文档啦。
2023-08-05 22:12:29
2563
原创 【SpringBoot笔记37】SpringBoot基于@ServerEndpoint、@OnMessage等注解的方式集成WebSocket
Spring框架中是采用【javax.websocket】包下的注解实现了WebSocket的功能,常见的注解有下面这些:@ServerEndpoint:用于指定对外暴露的WebSocket服务端点,即:接口地址、服务地址。@OnOpen:当WebSocket创建连接的时候,会执行该注解标记的方法。注解标记的方法,可以有参数:Session、@PathParam路径参数。@OnMessage:当服务端接收到WebSocket发送的消息时候,就会执行该注解标记的方法,该方法必须有参数,参数就是客户端
2023-07-31 21:26:37
1047
原创 【SpringBoot笔记36】SpringBoot自定义WebSocketHandler集成WebSocket
WebSocketHandler是Spring提供的一个接口,用于创建一个WebSocket服务端,我们只需要自定义一个类,接着实现WebSocketHandler接口,该接口中有五个方法,重写下面这五个方法即可。TextWebSocketHandler:专门处理文本消息的实现类。SockJsWebSocketHandler:添加了SockJS消息架构的实现类,该类继承自TextWebSocketHandler类。/**
2023-07-31 21:09:45
848
原创 【JDK】如何使用Java中的Robot和Toolkit两个类,实现根据好友昵称,自动发送微信消息的代码
这篇文章主要是介绍如何使用Java语言,实现自动给微信好友发送消息的功能,它的核心思想就是:调用windows系统中的快捷键功能,打开微信相应的界面,最后进行消息发送。微信默认的快捷键如下所示:第一步:电脑首先要登录自己的微信账号。第二步:使用Java调用windows系统的快捷键【Ctrl + Alt + W】,快速打开微信界面。第三步:使用Java调用windows系统的快捷键【Ctrl + F】,将光标聚焦到微信搜索输入框中。
2023-07-28 14:38:57
150
原创 【quill插件】Vue3项目引入quill-image-resize-module图片尺寸插件,报错Cannot read property ‘imports‘ of undefined
今天,我在创建一个Vite + Vue3的前端项目的时候,引入了quill富文本编辑器,接着又想引入quill-image-resize-module调整图片尺寸的插件,执行yarn add quill-image-resize-module安装依赖之后,进行ImageResize相关的配置,启动项目,访问页面,此时控制台居然报错了,报错如下所示:
2023-07-26 22:08:34
454
原创 【SpringBoot笔记35】SpringBoot自定义Converter转换器和Formatter格式化器
Converter是Spring3.0开始提供的一个类型转换器接口,使用这个接口可以将一种数据类型转换成另外一种数据类型,注意:这个接口是位于org.springframework.core.convert.converter.Converter包里面的,别导入错了。Converter接口中只提供了一个【convert()方法】,该方法就是将源对象的数据类型,转换成目标对象T的数据类型,如果类型不能转换,那么就会抛出非法参数异常。
2023-07-25 21:47:40
352
原创 【Python笔记01】Python + xlrd + pymysql读取excel文件数据并且将数据插入到MySQL数据库里面
Python中操作excel文件有很多的库,这篇文章就介绍【xlrd】库读取excel文件,并且结合【pymysql】库将读取的表格数据插入到MySQL数据库里面。工作簿对象中,提供了【sheets()】方法,可以获取到所有的sheet工作表数组,可以通过索引获取指定的sheet页,也可以使用【sheet_by_index()】或者【sheet_by_name()】方法,通过索引或名称获取指定的sheet页表。
2023-07-25 21:26:37
935
1
原创 【itext7】itext7操作PDF文档之添加表单控件(单行文本框、多行文本框、单选框、复选框、下拉框、按钮)
单选框使用【PdfFormField.createRadioButton()】方法创建,单选框可以有多个,这些单选框可以构成一个组,这一组中的单选框只能选中其中一个,单选框组采用【PdfFormField.createRadioGroup()】方法进行创建。类,这是一个表单对象,在这个表单对象里面就可以添加各种表单组件,例如:添加单行文本框、添加多行文本框、添加单选按钮、添加多选按钮、添加下拉框、添加按钮等。按钮使用【PdfFormField.createPushButton()】方法进行创建。
2023-07-20 21:57:11
1233
原创 【itext7】itext7操作PDF文档之添加段落文本内容、添加List列表、添加Image图片、添加Table表格
itext中使用List类表示列表对象,列表可以有序列表、无序列表,列表中的每一项使用ListItem类表示,一个List列表可以包含多个ListItem列表项,List列表可以设置缩进、列表项的符号等。,图片可以从URL、File等来源进行创建,Image类中的构造方法是protected修饰的,所以不能直接使用new关键字进行创建对象,可以使用itext中提供的。创建Table对象的时候,对应的构造方法必须指定表格中每一个单元格的宽度,列宽度的单位可以是pt、也可以设置百分比,推荐使用百分比单位。
2023-07-20 21:36:36
1923
原创 【itext7】itext7操作PDF文档之创建PDF文档、加载PDF文档、添加空白页、操作PDF页面、itext中的常见类及其方法
itext7是一款功能更加强大的PDF文档操作组件,它的功能虽然强大,但是是要收费的,当然也有免费版本的,免费那功能肯定就会有删减,不过免费版本的itext差不多已经可以满足大部分需求了。itext7和PDFBox类似,但是itext操作PDF比PDFBox更加的强大,itext7是将整个PDF文件抽象为一个PdfDocument对象,文件由多个PdfPage页面或者由单个Document文档对象构成,Document对象默认就表示PDF文档的第一页,在Document之上,可以进行内容的编辑,例如:添加
2023-07-19 21:23:12
3976
原创 【PDFBox】PDFBox操作PDF文档之读取指定页面文本内容、读取所有页面文本内容、根据模板文件生成PDF文档
PDFBox操作文本内容,需要使用文本提取器PDTextStripper对象实现,这个PDTextStripper类提供了对文本内容操作的方法,例如:getText()获取文本,writeString()写入字符串等等,下面介绍PDFBox操作文本的几种情况。
2023-07-18 21:36:23
3499
原创 【SpringBoot笔记34】Spring Events事件驱动编程之事件的发布和监听操作
Spring中的事件,都必须继承自接口,然后通过构造方法指定事件源,这里的事件源也就是哪个对象触发的这个事件。/*** @Description: 自定义事件*/// 这是自定义的属性,可以根据你自己的需求来决定/*** @param source 这个是事件来源,也就是谁触发了这个事件* @param publishDate 这个是自定义的事件参数,触发事件的时候,传递过来的*/
2023-07-17 21:38:40
315
原创 【SpringBoot笔记33】SpringBoot中使用@Async注解 + Future实现异步操作并获取返回值
Async是Spring3.0版本开始提供的一个异步任务注释,这个注解可以使用在类、接口、方法上面,一般情况下,都是在指定的方法上添加@Async注解,使其能够采用异步任务的方式执行,本质上是开启一个线程去执行这个方法中的代码。Spring将@Async标记的方法,提交到线程池里面,让线程池中的线程去执行这个方法,这样可以提高一部分程序的执行效率,在一些项目中,可以考虑采用这种方式优化程序的耗时问题。
2023-07-15 16:06:47
1196
原创 【PDFBox】PDFBox操作PDF文档之添加本地图片、添加网络图片、图片宽高自适应、图片水平垂直居中对齐
PDFBox可以向PDF文档中添加图片对象,使用PDImageXObject表示一个图片对象,对PDF文档的内容进行操作,都需要借助于PDPageContentStream页面内容流对象来完成,PDFBox将每一个PDF页面中的所有文本、图片、表单等内容看作一个流,通过流的方式来完成内容的添加、删除、修改等操作。这里首先介绍如何使用PDFBox添加图片对象到PDF文档里面。
2023-07-15 15:20:03
1996
原创 【图片下载】如何使用JDK中提供的URLConnection对象实现图片的下载功能
这篇文章,主要介绍如何使用JDK中提供的URLConnection对象实现图片的下载功能。JDK中提供的URL、URLConnection类是用于网络编程中的,URL类是对URL地址的一个抽象,表示的是统一资源定位符对象,URLConnection是一个资源的链接对象,用于和网络资源建立请求链接关系,使用URL和URLConnection两个类可以实现网络资源的访问和下载功能,其中URLConnection类有一个常用的子类是HttpURLConnection,这篇文章就需要介绍一下如何实现图片的下载功能。
2023-07-11 21:44:22
204
原创 【PDFBox】PDFBox操作PDF文档之创建PDF文档、加载PDF文档、添加空白页面、删除页面、获取总页数、添加文本内容、PDFBox坐标系
PDFBox是Apache提供的一款专门用于操作PDF文档的工具组件,使用PDFBox可以很方便对PDF文档进行各种操作,例如:创建PDF文档、读取PDF文档内容、加载PDF文档内容、合并PDF文档、拆分PDF文档等等,使用PDFBox需要引入对应的依赖,这篇文章就基于下面的依赖,介绍一下PDFBox中一些常见的方法及其使用方式。-- 引入 PDFBox 相关的依赖 开始 -->-- 引入 PDFBox 相关的依赖 结束 -->
2023-07-11 21:27:10
3905
5
原创 【kotlin笔记06】kotlin之泛型、泛型类、泛型接口、泛型方法、泛型的约束、泛型通配符
kotlin中也有泛型,和Java中的泛型的概念是一样 ,都是参数化类型,也就是说,将一个数据类型作为参数传递到一个类、一个接口、或者一个方法中使用,这是因为我们在编写代码的时候,不知道应该采用什么类型,只能够在程序运行的时候,才知道具体的数据类型,那么这个时候,就可以使用泛型来定义数据类型。kotlin中的泛型和Java中的泛型几乎差不多,只不过kotlin中的泛型有一点点语法上的不同,泛型可以大致分为三种:泛型类、泛型接口、泛型方法,下面分别介绍一下这三个泛型的使用语法。
2023-07-01 15:01:18
694
原创 【kotlin笔记05】kotlin之Lambda表达式、lambda作为函数参数、lambda作为函数返回值、lambda表达式调用的几种方式
kotlin中的Lambda表达式就是一个匿名函数,它的语法是使用【{}】花括号作为函数体,函数体中的就是匿名函数,kotlin中的Lambda表达式只有2种类型,分别是:无参数有返回值、有参数有返回值。
2023-06-29 21:19:57
664
原创 【软件安装】Linux系统中安装Nginx服务器(Ubuntu系统)
nginx是一个高性能的web服务器,有两种方式可以下载,第一种方式是去nginx的官网下载nginx安装包,然后将下载的安装包上传到linux服务器上面,nginx官网地址是:【https://nginx.org/en/download.html】。第二种方式是使用【wget】命令,直接在linux服务器上面下载对应版本的nginx安装包,这种方式更加的方便,nginx安装包版本可以去【http://nginx.org/download/】这个地址查找,如下图所示:
2023-06-28 20:46:35
728
原创 【软件安装】Linux系统中安装Redis缓存数据库(Ubuntu系统)
Redis安装包可以去redis官网下载,下载redis压缩包之后可以将其上传到Linux服务器,之后进行安装即可。Redis官网下载地址是【https://redis.io/download/#redis-downloads】,可以在下载界面中,选择对应的redis版本即可。另外你也可以在Linux系统中使用【wget】命令,使用【wget】命令可以直接将redis安装包下载到Linux系统上面,不需要单独上传,下载哪个redis版本可以到这个地址查看【http://download.redis.
2023-06-27 21:54:30
358
Java反编译工具(jd-gui)
2023-11-25
【JasperReports】报表开发工具jasper studio
2023-08-05
基于Python+xlrd+pymysql将excel数据导入到MySQL数据库的exe可执行文件
2023-08-02
PDFBox替换文本内容(PDFBox根据模板生成PDF文档)
2023-07-18
自定义数据字典工程模块
2023-06-18
基于vue2和element-ui实现的自定义分页表格组件
2023-06-11
redis集群模式配置文件
2023-04-16
可折叠组件(好友列表)小案例
2023-03-29
数据结构之栈和队列的代码实现(C语言)
2022-12-30
android实现APP应用引导页&启动页的功能源代码
2022-12-07
Android自定义Toast提示信息工具类
2022-10-23
Android实现一个简易版本的购物车小案例
2022-10-21
使用Android模拟实现微信首页功能
2022-07-17
android模拟实现QQ登录界面
2022-07-14
JavaScript实现跑马灯效果
2019-05-25
JavaScript实现滑动式轮播图效果
2019-05-25
JavaScript实现切换式轮播图效果
2019-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人