自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大猩猩的专栏

技术学习笔记

  • 博客(31)
  • 资源 (6)
  • 收藏
  • 关注

原创 微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一)

在使用 SockJS 时,首先需要在客户端和服务器端分别引入 sockjs-client.js 和 sockjs-server,然后在客户端通过 new SockJS(url) 的方式建立一个 SockJS 连接。客户端和服务器端之间的通信是基于事件的,当客户端发送消息时,服务器端会触发一个 onmessage 事件,然后将消息发送回客户端。以上我们提到了SockJs和Stomp,对于Gateway与SockJs的转发连接友好性,那么我们今天就来通过实践来完成这些实例。我们本地输入链接查看,部署成功。

2024-04-19 14:13:38 967

原创 Spring Cloud Gateway集成聚合型Spring Boot API发布组件knife4j,增强Swagger

​​​​​为了能更好的实现界面的客观性,我们这里写了一个swaggerResource的方法,此方法主要是为了能更好的表达我们的Api接口是属于谁的。可是我们在用Swagger时,不管是Swagger本身,还是SwaggerUI,用起来其实不是那么的便捷,尤其是SwaggerUI,反正我用起来真的很是难受,也许是因为它不是我们国人开发的,所以操作方面根本没有我们国人的操作习惯设计。有了这个东东,那么我们来研究一下,怎么让他来集成我们的Gateway,那么如何实现Gateway,可以查看我的上一篇文章。

2024-04-17 10:13:39 989

原创 轻量级的Spring Cloud Gateway实践,实现api和websocket转发

当国内大部分都是粘贴复制一些重型框架时,有没有人会想到,我们自己做一个小项目,几个小的Spring boot的项目时,我们是否还需要按部就班的用我们公司中用到的Nacos,这种冗余且调配复杂的组件呢?接下来,我们所有的配置所属都在配置中进行,在我们日常开发中,经常会被跨域请求绞挠的难受,网络充斥着大量的无用cors跨域配置。很多程序员在开发和编码过程中,很少自己去真正的研究一个框架和组件,他们大部分的工作只是在自己接手的项目上缝缝补补罢了。那么我们从API路由开始,尝试做一个轻量级的实践。

2024-04-15 15:38:39 1113

原创 Nginx配置深度解析:构建高性能Web服务器的关键

Nginx的工作原理主要是基于单线程异步非阻塞的处理方式,这种设计使得它能够支持更高的并发连接数,有效处理大量用户的访问请求。安全性配置也是Nginx的一个重要方面,包括启用SSL/TLS加密、限制访问频率、防止DDoS攻击等措施。Nginx的实际应用场景广泛,包括作为Web服务器、反向代理服务器,以及实现负载均衡等。Nginx是一个高性能的Web服务器和反向代理服务器,以内存占用少、并发能力强而著称。在配置和优化方面,Nginx的配置文件简洁明了,易于理解。location: 用于匹配特定的URL路径。

2024-04-11 11:03:03 336

原创 再见StackOverFlowError Java Lambda尾递归

虽然Lambda表达式本身并不是为了递归而设计的,因为Java的Lambda表达式不支持递归调用,但是我们可以使用一些技巧使用Lambda完成递归。当我们觉得我们使用递归完成业务后,一运行,发现了StackOverFlowError的错误,严重时会使得整个程序都会崩溃的问题。(这里可以使用java.util.function.Function,为了更好的表达解释,所以我们直观的写一个)报错了,可想而知,在我们的业务中20000的阶乘预算其实并不是很大,就报错了。最后,我们来改一下计算阶乘的代码,进行运行。

2024-04-07 17:00:16 324

原创 Java WebSocket对接币安区块链K线行情API

Java实现websocket其实有很多种方式,比如:javax.websocket Java标准库、再如OkHttp、Apache HttpClient还有一个开源的库。​​​​ List<String> channels 多币种订阅的模式参数。今天我们来说说我在做Java后端对接币安区块链时,遇到的问题及解决方式。既然要对接币安区块链K线接口,我们首先必须先了解这个行情api在哪里?​​​​​​​ 至此整个开发过程已然明了。pom.xml先引入。

2024-04-01 13:13:21 661

原创 Tron波场区块链 | 使用Java将Tron钱包助记词转私钥 全网独门一份

它的生成也是加密解密的关系,那么这里我们使用tronweb其实并不需要实例化,只要引入它的组件包,包含加解密应该就行了,那么代码其实很简单。本来想着这个问题挺简单,可是查了半天,不是,不止半天查了好长时间,看了半天官网文档,全网Java就没有实现的。是前端项目啊,先不管了,我们来先看是否能实现,然后看看Js的实现是否能转换为Java语言。输入助记词,点击解析后,我们看等到了私钥、公钥还有地址信息。​​​​​​​看到ethers,这里我们就可以知道了。​​​​​​​运行程序后,结果是错的。

2024-03-30 21:15:01 421

原创 极高效极安全的搭建微服务Docker环境:一步到位的实用教程

原代码、数据库等等一切配件都在,可是唯一不在的,是它的服务器已经停了好长时间了,那么重启就意味着我们又要重装一次环境。总共就4个微服务模块,那么这个项目就很小咯,咱们今天就拿Docker来把这个环境部署一下吧。以上步骤结束之后,可以将我们自己编译的容器上传至docker hub,以后要用到直接pull即可。上面步骤,主要属于我们的前期准备,下来我们需要将我们的微服务Jar包打进镜像,并且运行起来。好久好久之前有个因为种种原因,已经"流产"的项目,今天找到我需要重启。3、Nginx停了。

2024-03-29 11:49:45 414

原创 理解JVM:从字节码到程序运行

3. 局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不等同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向代表对象的句柄或其他与此对象相关的位置)和返回地址。2. 虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行时,都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。1. 存储当前线程执行的字节码的地址。

2024-03-28 13:09:38 711

原创 深入技术细节:放弃Spring Security,自己实现Token权限控制!

​​​​​​​在HandlerInterceptor方法实现内有handler参数,如果handler是HandlerMethod的实现,那么我们通过反射获取到方法上标记的注解即可标明此方法不进入TOKEN校验。​​​​​​​以上逻辑内,包含了获取到token信息后,进行和缓存内的用户信息进行匹配检查、以及刷新token的业务逻辑,刷新Token的标记也是缓存内的获取检查。​​​​​​​最后,我们将HandlerInterceptor的方法重写并实现。​​​​​​​我们先一个注解@Login。

2024-03-22 11:29:20 877

原创 从Hello World到高薪Java开发者:学习JAVA难吗?

学习JAVA不是单单学习JAVA语言,而是学习Java的整个生态,如上说的工具都延伸出来需要适配JAVA来使用。redis代码缓存可以做性能优化组件、mysql数据存放组件,mq也是性能优化或者分布式消息队列,shell是考验你的软件维护能力,也是我们需要学习的。无论是eclipse还是IDEA,我们必须熟练的操作,这都不是啥大事,但是除了开发工具,您还需要了解Java的生态,如redis mysql mq 以及 shell等等相关工具必须要学习的。永远做不完的活,永远处理不完的BUG。

2024-03-21 10:05:02 338

原创 高性能的秘密武器:Redis在Spring Cloud Config中的妙用

我见过很小很小的项目,做了一个很大很大的框架,咱也不清楚这个项目是怎么弄的,小项目大框架,真的是为了显示自己的能力,还是给开发人员增加工作量呢。目前不用心急,我们在创建了spring cloud config项目工程之后,我们需要在它的配置中,明确告诉config,我用的是redis。,那以此为基础,我们使用redisson组件作为配置微服务的配置中心,使我们的微服务配置库变为redis。客户端我们需要获取到配置中心的配置信息。上面的配置中conf-ref代码,我还要引入外部的配置,那么配置中还有。

2024-03-19 12:44:52 840

原创 轻松实现Nginx的HTTP与WebSocket转发:你的网站需要这个

在 Nginx 中配置 HTTP 和 WebSocket 的转发,那么 Nginx 的配置文件,通常这个文件位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/ 目录下的某个文件。总而言之,配置转发不生效的问题,假如配置全部正确,就是不转发的情况下,请查看您的api配置,以及正则的匹配优先级。该网站基本都是傻瓜式的点击配置,当我们配置完成后,进行下载,那么,我们会得到一个非常详尽的nginx配置文件。我们了解下nginx内正则的规则和序号。

2024-03-18 11:34:28 1208

原创 如何在微服务代码中优雅的处理异常 | 全局异常的实现方式

在微服务架构中,我们经常要处理一些已知的异常,在处理时,为了更好的统一去处理异常,我们要实现全局异常代码块,通过传入特定的状态码和错误信息或者一个枚举值,通过Response返回错误信息,传输到客户端提示用户。此外,根据不同的业务需求和场景,全局异常处理的策略也会有所不同。首先,我们定义一个全局异常类,这个异常类可以携带额外的信息,比如错误代码和错误消息也可以使用我们异常枚举类来实现。在微服务中的每个服务内部,我们也需要处理异常,以防止异常传播。接下来,我们创建一个全局异常处理器,用于捕获和处理全局异常。

2024-03-17 20:47:36 446 1

原创 天天说微服务,天天开发RESTful API,那你知道RESTful API是什么东东吗?

使用GET方法可以检索资源的信息,使用POST方法可以创建新的资源,使用PUT方法可以更新资源,使用DELETE方法可以删除资源。REST的核心思想是将应用程序的状态和功能分解为可处理的资源,每个资源通过唯一的URL进行访问。8. 测试和调试:在构建完API之后,进行全面的测试和调试,确保API的功能正常,能够满足应用程序的需求。通过遵循REST的原则,并正确地设计API的URL、HTTP方法、数据格式和状态码等,开发人员可以创建高效、易于使用的API,并促进系统之间的互操作性和协作。

2024-03-16 22:12:32 945 1

原创 一场“猜成绩”大赛:ArrayList vs. LinkedList

它还具有自动扩容的功能,当我们往ArrayList中添加元素时,如果数组已经满了,ArrayList就会自动调整大小,为新元素腾出空间。然而,由于LinkedList没有随机访问的能力,要访问特定位置的元素,我们需要从头开始顺序查找,这将消耗O(n)的时间。ArrayList是一个动态数组,具有随机访问的能力,这意味着我们可以在O(1)的时间复杂度内访问任意位置的元素。最后一轮,我们邀请大家来“猜猜看”:在实际应用中,你认为哪个数据结构会更适合呢?现在,让我们开始“猜成绩”大赛吧!

2024-03-15 15:04:58 660 1

原创 区块链技术的应用场景和优势

2. 物联网:区块链可以建立可信、安全的物联网网络,用于设备之间的身份验证、数据传输和交易记录,确保物联网数据的真实性和可靠性。综上所述,区块链技术在不同行业中有着广泛的应用场景,能够提供更加安全、透明和高效的解决方案,带来许多优势和创新的机会。3. 供应链管理:区块链技术可以追踪产品的整个供应链过程,确保产品的质量和来源可信,提高供应链的透明度和效率。5. 医疗健康:区块链可以建立医疗数据的安全和私密性,方便医生和患者之间的数据共享和医疗记录的追溯。

2024-03-14 20:17:08 568 1

原创 WEB区块链开发组件 - KLineChart

当我们开发区块链的时候,实现K线可能大家会想到EChart,但是EChart做可能需要耗费大量工作量,实现出来的功能估计也是牵强着用。可是这个组件虽然功能非常强大,但是还是要费事费力,全网的资料也不是很通透,用起来需要耗费大量精力去研究。不需要再次开发相应功能。经过大量的搜索和实践,我找到了一个既不用耗时费力,用实现起来优雅美观的组件,1. 支持图标样式配置,图表上看到的不管是点还是线,基本都可以自定义样式。正好需要用到的同学,不妨可以尝试一下,肯定会用惊喜。📱 移动端: 支持移动端,一个图表,搞定多端。

2024-03-13 18:55:15 558

原创 uniapp开发DAPP钱包应用(二) Vue + Java

上一节我们讲了如何通过vue uniapp还有web3以及需要准备的相关组件,来搭建了DAPP开发的环境。当验签成功后,即实现登录,接下来基本都业务相关代码,自行开发吧!这一节,我们来说说如何用代码来实现DAPP相关接口。

2024-03-12 20:29:51 782 1

原创 uniapp开发DAPP钱包应用(一) 环境搭建 Vue+ MetaMask + ABI.json

ABI 也是程序间互动的接口,但程序是被编译后的 binary code。所以同样的接口,但传递的是 binary 格式的信息。待我们前期的这些准备好了之后,我们需要给我们的工程导入 ethers @metamask/sdk俩个插件。到此,我们的前期工程部署差不多就完成了,但是我们如果是需要智能合约的支持,那么我们还得要有一个准备工作,就是获取到。其实很简单,我们在打开区块链浏览器后,找到需要支持的智能合约,下发会有一个智能合约的ABIJSON提供下载。这一节,我们来说说前端DAPP的开发实现。

2024-03-11 14:39:22 628 1

原创 Java对接(BSC)币安链 | BNB与BEP20的开发实践(三)水龙头 WEB3

这一节我们讲一个币安测试链如何获取到BNB、USDT等BEP20数字货币(水龙头)来让我们前期测试开发。如图:我们将创建的地址填入相应输入框,来获取到测试BNB以及其他BEP20数字币。发币可能需要交易等待,请耐心等待即可,交易完成后,币会到达您的地址内。上一节我们用代码来实现BNB转账、BEP20转账、链上交易监控。2.MetaMask(小狐狸)浏览器插件 🪜。使用EDGE浏览器可以在浏览器直接打开。使用Chrome浏览器,请使用🪜打开。基本工作就绪后,即可进行开发测试。3. 测试区块链浏览器 🪜。

2024-03-10 18:59:31 763

原创 BetterDisplay for mac V2.2.5 强大的mac显示器管理开源工具

允许亮度和颜色控制 提供 XDR/HDR 亮度升级(Apple Silicon 和 Intel Mac 上兼容的 XDR 或 HDR 显示器的额外亮度超过 100% - 多种方法可用)创建显示器的画中画窗口 并为您提供许多其他功能,以便从菜单栏轻松管理显示器的设置。BetterDisplay是Mac OS 一个很棒的工具!它允许您将显示器转换为完全可扩展的屏幕。帮助您为 Mac 创建和管理虚拟屏幕。它甚至可以即时断开/重新连接显示器!

2024-03-09 19:32:11 599

原创 Java对接(BSC)币安链 | BNB与BEP20的开发实践(二)BNB转账、BEP20转账、链上交易监控

可惜运行大概一个小时之后,就无法正常使用,web3j内部错误,github上寻求了各种方法,包括改web3j版本,将web3j的监控改为websocket都无法完美实现,也是通过研究和大量的调试,才找到了最好办法。和之前TRON TRC20同样的艰辛,BNB的监控逻辑和业务包括web3j的支持,以及RPC接口的稳定性,简直是折腾了一个够。上一节我们主要是环境搭建,主要是为了能够快速得去开发,有些地方只是简单的介绍,比如ETH 、web3j等等这些。废话不多说,首先还是查找链上最大的交易块。

2024-03-09 19:23:30 1227 1

原创 REDIS可视化神器 | REDIS DESK MANAGER(2022.5.1)

4. RESP.app 以人类可读的形式显示JSON,MsgPack,PHP,Pickle,numpy,pandas和二进制数据,解码Brotli,LZ4,ZSTD,Snappy,GZIP,Magento Cache和Sessions,并支持扩展服务器。2. RESP.app 支持所有最新的Redis功能:ACL,Streams,Cluster,Sentinel,ReJSON模块,HyperLogLog等。无法打开或者闪退,请安装版本对应的python版本:3.10.9,即可解决大部分无法使用的问题!

2024-03-08 11:16:36 510 1

原创 Java对接(BSC)币安链 | BNB与BEP20的开发实践(一)环境搭建

如搜索“Java对接Bep20开发” “Java BSC” 等等一系列词,搜索出来的都是相关解释,跟开发基本都不沾边,沾边的都是很少的几行代码,对于初学者或者初次接触区块链的开发人员来说,简直的毫无用处的回答。第一节我们主要是环境搭建,主要是为了能够快速的去开发,有些地方只是简单的介绍,比如ETH 、web3j等等这些,我们回来之后的文章详细的去了解。网内有很多关于币安链交易开发实例,但是打开一百篇,可能有百分之80的相似度,而且完全是那种你翻版我,我盗版你的文章,根本无法进行参照开发。

2024-03-08 11:07:04 762

原创 让 Mac 像 Windows 一样使用 Alt + Tab 切换窗口--AltTab

从windows转mac过来的用户,或者是有时需要操作windows,有时又需要操作windows的同学,经常碰到这样那样的操作上不习惯,尤其是在快捷键操作这方面,习惯了windows的快捷键,在mac上按下去没反应时,甚是苦恼。当你开的窗口太多时,按照windows习惯,按下altTab时,却无法切换窗口,那么想延用windows习惯的可以用AltTab这款软件来实现,在MacOS上有不错的表现,百分之99.99还原windows界面。版本 6.65.0 (2024-03-01)隐藏、退出任何应用程序。

2024-03-07 12:17:35 461 1

原创 Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、WEB3测试实战

首先我们需要一个钱包地址,我们不需要钱包进行创建,直接可以通过第一节的离线创建地址代码运行获取,为了更好的测试,我们直接生成两个地址。这一节我们通过部署和开发好的代码,针对测试链进行自测开发,准备测试环境。TronLink为浏览器插件,插件安装成功后,通过私钥导入钱包地址。上一节我们具体讲到Java实现Tron波场链的逻辑代码实现。运行结果会得到钱包地址、私钥、公钥信息;3. 波场链水龙头(官网测试平台发币平台)(🪜)2. 安装区块链钱包(TronLink)

2024-03-07 12:06:17 978 3

原创 Java实现Tron(波场)区块链的开发实践(二)交易监控与转账

上一节我们具体讲到Java实现Tron波场链的开发部署:通过trident源码编译组件,使用RPC的方式链接Tron波场链,并进行了代码实现,还有如何创建离线钱包。-- 交易监控说白话就是在链接波场链的同时,监控波场链上的交易信息,再把这些交易信息检索和反编码,获取到真实TRX和TRC20所需交易。之所以交易监控放在最后,是因为本人在交易监控上做了很多很多的尝试,最后找到了JAVA实现自认为是最好的实例。-- 不变的是,监控一定以及肯定的是将监控到最后一个块的交易,也就是链上最后一笔交易。

2024-03-06 12:12:40 1884 4

原创 Java实现Tron(波场)区块链的开发实践(一)环境搭建及简单实现

最近在开发区块链相关项目时,因本人一直使用JAVA做开发语言,但是区块链开发对JAVA语言相对来说不是很友好。在开发过程中遇到很多的问题,甚至通过百度、Google都无法解决,官方文档大部分篇幅在介绍接口相关信息,对Java实现不多。将组件原代码clone到本地,确认本地已经安装配置好Gradle 6.9.4,进行打包并将打好的组件包,置入项目工程内。可是为了赚点钱,也是硬着头皮,经过重重问题和反复摸索,终于搞定了Torn区块链相关需求的开发。申明:本实践经过自己实现,App产品已上线应用,可放心食用。

2024-03-05 11:44:30 1005 8

原创 RabbitMQ 管理界面解析框架

前言RabbitMQ的安装,网上例子非常多,此处不做累赘.至于为什么装RabbitMQ的时候要装erlang,因为erlang也是一门语言,通俗讲就是开发rabbitmq人员当时为了高并发,分布,健壮性,等等一系列优点的考虑,采用erlang作为rabbitmq的底层语言来开发.erlang现如今是开源语言.函数式编程,支持多种开发环境.当然博主也只能说成这样,没有更深层次的研究和学习...

2018-10-09 17:53:29 10302 2

原创 spring cloud config 本地配置和远程GIT部署 公共配置获取

引言在我们开发spring boot微服务框架时,经常会用到各种各样的配置,而这些配置在我们没有采用整体项目管理或者产品管理下,显得很混乱,尤其是一些公共的配置,加上我们微服务模块化,比如说要修改一个库配置,或许要修改到各个模块去整体调配,增加工作量的同时,对工作完全是一无是处的.为此,对服务配置文件进行整体管理是必不可少的.然 ---spring cloud config在微服务架构下,...

2018-09-29 11:37:03 8298 2

Java实现Tron(波场)测试DEMO

Java实现Tron(波场)测试DEMO, gradle编译rident后的springboot案例。

2024-03-21

BetterDisplay for mac V2.2.5

BetterDisplay是Mac OS 一个很棒的工具! 它允许您将显示器转换为完全可扩展的屏幕, 管理显示器配置覆盖 允许亮度和颜色控制 提供 XDR/HDR 亮度升级(Apple Silicon 和 Intel Mac 上兼容的 XDR 或 HDR 显示器的额外亮度超过 100% - 多种方法可用) 完全调光为黑色 帮助您为 Mac 创建和管理虚拟屏幕 创建显示器的画中画窗口 并为您提供许多其他功能,以便从菜单栏轻松管理显示器的设置 它甚至可以即时断开/重新连接显示器!

2024-03-09

REDIS可视化神器 最新版- REDIS DESK MANAGER(2022.5.1)

RESP.app(又名 Redis Desktop Manager)为您提供了一个易于使用的 GUI,用于访问您的 Redis 数据库并执行一些基本操作。 作为程序员使用过几款redis gui,可是用来用去,还是觉得RESP是最适合本人使用的工具,所以很关注它的新功能以及更新。 1. RESP.app 适用于多种操作系统,可用于macOS,iPadOS,Windows和所有Linux版本。 2. RESP.app 支持所有最新的Redis功能:ACL,Streams,Cluster,Sentinel,ReJSON模块,HyperLogLog等。 3.内置 TLS、SSH 和 TLS-over-SSH 隧道,可轻松安全地访问任何 redis 服务器。 4. RESP.app 以人类可读的形式显示JSON,MsgPack,PHP,Pickle,numpy,pandas和二进制数据,解码Brotli,LZ4,ZSTD,Snappy,GZIP,Magento Cache和Sessions,并支持扩展服务器。 5.实例RESP.app 可以与Amazon ElastiCache,M

2024-03-08

AltTab是MacOS仿WIN的切换窗口小工具 V6.66.0

AltTab是MacOS仿WIN的切换窗口小工具。 从windows转mac过来的用户,或者是有时需要操作windows,有时又需要操作windows的同学,经常碰到这样那样的操作上不习惯,尤其是在快捷键操作这方面,习惯了windows的快捷键,在mac上按下去没反应时,甚是苦恼。 当你开的窗口太多时,按照windows习惯,按下altTab时,却无法切换窗口,那么想延用windows习惯的可以用AltTab这款软件来实现,在MacOS上有不错的表现,百分之99.99还原windows界面。

2024-03-07

23.06.12最新版的jdk

23.06.12最新版的jdk

2023-06-12

DBeaver5.3.1

dbeaver数据库连接工具,覆盖连接市面上95%的数据库.最新版..

2019-01-08

redis-desktop-manager-0.9.999

2018-12-19号 redis图形化界面管理工具.源代码编译后的结果包,最新,最靓,最美...

2018-12-19

dbeaver4.2.4

dbeaver4.2.4 Eclipse框架最好用的万能数据库链接工具

2017-11-09

jsp嵌入EXCEL可修改保存至服务器

jsp嵌入EXCEL可修改保存至服务器,找了好久才找到啊..是官方事例!

2011-06-30

dos点击链接不能打开含空格名称的文件夹方法

dos点击链接不能打开含空格名称的文件夹方法 求得短路径!

2011-03-29

空空如也

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

TA关注的人

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