自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

庄周de蝴蝶的博客

鱼鱼要加油

  • 博客(71)
  • 资源 (1)
  • 收藏
  • 关注

原创 IntelliJ IDE 插件开发 | (九)实现 Unicode 字符折叠预览

在上一篇文章中我们介绍了如何实现 i18n 的方式,其中提到官方建议我们在编写语言文件时将 ASCII 码范围外的字符都使用 Unicode 编码进行表示,这样就导致我们无法直观地看到原始文本,因此本文就来介绍如何实现对 Unicode 字符折叠预览的功能,最终实现效果如下,另外本文所涉及到的完整代码也已上传到GitHub。本文介绍了如何通过 IntelliJ 提供的接口来实现对 Unicode 字符折叠预览的功能,整体实现方式也比较简单,下一篇文章将会介绍如何开发主题。

2024-04-13 21:13:40 532

原创 IntelliJ IDE 插件开发 | (八)国际化配置

尽管大多数情况下我们开发的插件可能都是自己或者团队内部使用,但是如果想要将开发的插件发布到 Jetbrains 的插件市场,吸引更多的用户使用和支持,那么 i18n 就必不可少了。而 IntelliJ 也给我提供了内部支持,只需要简单几行代码即可实现 i18n,下面开始分步骤进行讲解,另外本文涉及到的完整代码也已上传到GitHub。在上篇文章的结尾说到这篇文章会介绍 PSI 的进阶内容,不过考虑到使用场景较少,所以这篇文章先介绍了关于 i18n 的相关内容,PSI 的进阶内容则留到后续篇章中再进行介绍。

2024-04-08 12:46:27 963

原创 IntelliJ IDE 插件开发 | (七)PSI 入门及实战(实现 MyBatis 插件的跳转功能)

所谓 PSI(Program Structure Interface),直译过来是程序结构接口,其实就是 IntelliJ 平台给我们提供用来解析代码文件,简化对各类编程语言(Java、Kotlin、XML)操作的接口。大部分针对编程语言或者框架的便利插件其实就与此相关,本文则会先介绍关于 PSI 的一些基础知识,然后再以一些 Mybatis 插件提供的 Java 方法 和 Mapper XML 文件互相跳转的例子来说明 PSI 的实际应用,最终实现效果如下图,本文涉及的到的完整代码文件也已上传到。

2024-03-24 18:59:12 1926 5

原创 解决达梦集成 JPA 时表和字段注释注解不生效的问题

最近在做达梦数据库集成 JPA 时,发现使用的表注解和字段注解均未生效(MySQL、Oracle、PostgreSQL中均可以在建表时正常生成相应的注释),经过调试发现解决办法也很简单:自定义方言类继承自,重写/*** 自定义 dm 方言类*/@Overridespring : jpa : # 根据自己的类路径进行修改 database-platform : cn.butterfly.config.MyDmDialect如果大家也在使用达梦集成 JPA 时遇到了以上问题,按照上述说明配置即可。

2024-03-12 08:00:00 1042

原创 IntelliJ IDE 插件开发 | (六)内部模式的使用

前几篇文章主要介绍了 IntelliJ IDE 插件开发的基础知识和实战内容,作为后续内容的过渡,本文会讲解前几篇文章中提到过的内部模式的使用。内部模式通过菜单形式提供了一系列实用工具,能够帮助初学 IntelliJ IDE 插件的同学极大提升开发效率,由于内部模式提供的工具过多,本文则会挑选几个比较实用的工具进行介绍。本文主要讲解了内部模式中几个比较实用的工具,希望能给大家提供一些帮助,如果你发现了一些插件开发中的小技巧,也欢迎一起交流讨论~~~

2024-02-05 16:15:08 1505

原创 QT 使用 QWebChannel 与 Web 端通信展示文件信息

获取指定文件夹下的文件信息。通过使用 QT 的 QFileSystemWatcher 对指定文件夹进行监听,以实现可以获取到文件变更信息并实时展示在浏览器端。最终实现的效果如下:本文涉及到的完整代码已上传到GitHub。阅读本文前需要对 QT 的基础知识(比如信号槽)及 QWebChannel 模块有基本的了解。

2024-01-31 14:36:22 1254

原创 IntelliJ IDE 插件开发 | (五)VFS 与编辑器

在前几篇文章中主要介绍了关于 IntelliJ IDE 插件开发的基础知识,这部分内容对开发一些小功能的插件的开发已经足够。不过,如果想要开发一些与具体编程语言相关的、提升开发效率的插件(例如MybatisX),那么前几篇的内容就不足以支撑了。而从本篇开始,则会介绍实现相关功能所需要的知识: VFS、编辑器、PSI、自定义语言等,最后再以两三个插件的实战开发(例如老生常谈的代码生成)进行结尾,本文涉及到的完整代码已上传到GitHub。

2024-01-24 15:12:58 1517 7

原创 IntelliJ IDE 插件开发 | (四)来查收你的 IDEA 使用报告吧

在上篇文章的结尾提到本文将参考 VS Code 中 TimerMaster 插件的实现效果来实现一个在 IDEA 中统计编码情况的插件,TimerMaster 的效果如下:本文最终实现的插件效果如下(增加了 CV 操作和代码提交的统计😎):由于本文涉及到大部分知识都是在前几篇文章中介绍过的,因此本文只对关键功能点和实现方式进行介绍,一些基础知识和配置就不再讲解,该插件的完整代码已上传到GitHub。

2023-12-28 13:51:19 1514

原创 IntelliJ IDE 插件开发 | (三)消息通知与事件监听

在前两篇文章中讲解了关于插件开发的基础知识,本文将介绍关于消息通知和事件监听方面的内容,关于 IntelliJ IDE 插件开发的基本内容也就到此为止,在下一篇文章中将开发一个简单的插件对这部分内容做一个总结,后续再介绍关于虚拟文件和PSI相关的知识,最后以一个代码生成插件作为结尾。话不多说,下面就开始本文的主题,同时本文涉及到的的完整代码已上传到Github。在 IntelliJ 平台中的事件可以看作是发布订阅的模式,我们需要先定义一个主题,然后发布者发布相应的事件,订阅者实现对应的监听器事件即可。

2023-12-19 08:17:09 4824 2

原创 IntelliJ IDE 插件开发 | (二)UI 界面与数据持久化

在上一篇文章中介绍了在IDEA下开发、运行和安装插件的基本步骤,因此创建项目等基础步骤不再赘述,本文则开始介绍如何进行 UI 界面的开发以及相关数据的持久化存储,本文涉及到的的完整代码已上传到Github。本文讲解了关于 UI 界面开发和数据持久化相关的内容,如果有错误或不足之处,欢迎一起交流讨论。

2023-12-06 19:18:05 2420 14

原创 Re0: 从零实现一个置顶任意窗口的小工具

话不多说,先上效果:这里展示的是通过下拉框选择窗口,让窗口显示并置顶,其实还可以直接通过快捷键(先鼠标点击要置顶的窗口,再使用),本文涉及到的完整代码已上传到GitHub,也可以选择直接下载exe(35k)体验。本文简单实现了一个置顶任意窗口的小工具,实现思路很简单,还只算是一个半成品,不过核心功能已经有了,只需要自己额外进行一些扩展就足够日常使用,欢迎一起交流讨论。

2023-11-29 16:36:02 582

原创 Windows | 模仿网易云任务栏实现自定义按钮及缩略图

最近更新网易云发现任务栏按钮中除了播放相关的按钮,多了一个喜欢的按钮:之前我一直以为网易云任务栏的按钮只是 Windows 为音乐软件专门提供的,于是我又看了一眼系统自带的播放器,发现并没有爱心按钮:这时我就想会不会是 Windows 提供了相关接口可以让用户自定义,一搜发现还真有,ITaskbarList3接口提供了自定义任务栏按钮的方法,于是就有了下面这个 demo 的实现:由于自定义缩略图,导致悬浮在缩略图上无法查看原有的预览窗口内容。

2023-11-24 09:39:26 595

原创 逐字节讲解 Redis 持久化(RDB 和 AOF)的文件格式

相信各位对 Redis 的这两种持久化机制都不陌生,简单来说,RDB 就是对数据的全量备份,AOF 则是增量备份,而从 4.0 版本开始引入了混合方式,以 7.2.3 版本为例,会生成三类文件:RDB、AOF 和记录 aof 文件的元数据信息文件,如下图所示,这时的 AOF 可以看作是一种差异备份。接下来本文将结合具体的备份文件,通过分析其结构,从另一种角度来看两种持久化方式的差异。本文根据一个简单的 RDB 文件讲解了 RDB 文件的存储格式,同时也简单介绍了 AOF 的文件格式。

2023-11-20 10:34:32 503

原创 IntelliJ IDE 插件开发 | (一)快速入门

IntelliJ IDEA 作为 Java 开发的首选 IDE,其强大、方便之处不必多说。不过,由于个人或者团队的个性化需求,我们或多或少会想对其功能进行拓展,这时就需要开发插件(在 IntelliJ 平台下的所有 IDE 均可运行)才能满足。

2023-11-16 16:50:08 2106

原创 SpringBoot 实现数据加密存储的五种方式

最近由于项目需要做等保,其中有一项要求是系统中的个人信息和业务信息需要进行加密存储。经过一番搜索,最终总结出了五种数据加密存储的方法(结合SpringBoot和框架进行实现),不知道家人们在项目中使用的是哪种方式🤔,如果有更好地方式也欢迎一起交流😊~~~,本文所贴出的完整代码已上传到GitHub。

2023-11-08 16:07:34 1529

原创 提升工作效率的一些网站、应用、插件和小技巧(二)

距离发布提升工作效率的一些网站、应用、插件和小技巧(一)已经过去了三年,这次再分享一下这三年里新 Get 到的一些工作、技巧,欢迎各位在评论区也分享一下自己使用的工具软件等,也希望下一个三年我还能继续坚持分享~~~

2023-09-28 16:29:56 245

原创 Nacos 实现服务平滑上下线(Ribbon 和 LB)

不知道各位在使用的时候有没有遇到过服务刚上线偶尔会出现一段时间的,或者服务下线后,下线服务仍然被调用的问题。而以上问题都是由于Ribbon或者的默认处理策略有关,其中Ribbon默认是 30s 更新一次服务信息,则是默认 35s 更新一次缓存。接下来本文讲解则如何通过监听Nacos的服务变更事件来实时进行相关服务的更新,以实现服务的平滑上下线。

2023-09-28 13:37:17 2249

原创 Re0: 从零实现一个解除文件占用的小工具

相信大家或多或少都遇到过想删除一个文件,却提示被占用的情况:不知道各位都是如何处理的,反正我一直都是用的火绒😄。但是作为一名程序员,自己写一个小程序实现多有意思,是吧。况且为了一个小工具去安装一个杀毒软件,不是一个合格的程序员,你们说对不对🤔。基于以上的原因,最终出现了这篇文章,效果如下,本文所对应的完整代码已上传到GitHub,可自行取用~~~注册表添加项无法自定义,同时未提供删除注册表的操作不是列出所有占用项让用户选择进行解锁只测试了 win10 和 win11 环境下的运行。

2023-09-18 08:30:00 587

原创 Vue + ElementUI 实现可编辑表格及校验

通过隐藏表头实现新增表格和修改表格的合并,同时表格数据只有。使用两个表单分别用于实现修改和新增处理。

2023-08-01 17:27:56 2345

原创 FlinkCDC 入门之数据同步和故障恢复

FlinkCDC 是一款基于 Change Data Capture(CDC)技术的数据同步工具,可以用于将关系型数据库中的数据实时同步到 Flink 流处理中进行实时计算和分析,下图来自官网的介绍。下图1是 FlinkCDC 与其它常见 开源 CDC 方案的对比:可以看见的是相比于其它开源产品,FlinkCDC 不仅支持增量同步,还支持全量/全量+增量的同步,同时 FlinkCDC 还支持故障恢复(基于检查点机制实现),能够快速恢复数据同步的进度,并且支持的数据源也很丰富。

2023-03-19 20:11:24 2468 3

原创 Stream 和函数式接口的基础讲解

前言关于 Stream 和函数式接口的基础概念的文章已经有很多,相信很多小伙伴也在实际工作中进行使用体验了。但是关于函数式接口的使用,部分小伙伴可能接触的比较少,其实我们经常使用的 map、filter 等方法内部就使用了函数式接口的知识:// 以下两个接口截取自 Java8 源码中的定义, 这里的 Function<? super T, ? extends R>// 和 Predicate<? super T> 就属于函数式接口方面的知识<R> Stream&

2022-02-19 21:08:19 789 2

原创 Canal 结合 RocketMQ 实现数据的增量同步

前言Canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,工作原理如下:Canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 Canal )Canal 解析 binary log 对象(原始为 byte 流)可以用于以下业务场景:数据库镜像数据库实时备份索引构建和实时

2022-01-30 23:04:30 4808

原创 基于 MPTT 简单实现部门树管理

前言MPTT即Modified Preorder Tree Taversal,直译就是修改的先序树遍历。而实际也正是如此,MPTT就是在对树进行先序遍历的基础上在每个节点中增加了left和right属性,最终让树的查询操作(例如查询某个节点的所有子节点、查询所有的叶子节点)变得十分高效。接下来,本文就来介绍MPTT的一些基本概念及对应的数据据库中的表结构,并通过一个简单的基于SpringBoot + Vue框架的例子进行实战讲解,本文所使用的代码已上传到GitHub。先序遍历与MPTT在介绍MPTT前

2021-12-28 08:00:00 1700 2

原创 GitHub OAuth2 第三方登录及自定义认证服务器的实现

前言本文将介绍如何访问基于OAuth2协议的GitHub用户信息API接口以及如何自己实现一个简单的基于授权码模式的认证服务器,如果对OAuth2的基本概念和四种授权模式还不熟悉,可以先看一下阮一峰老师的博客:OAuth 2.0 的一个简单解释,本文则主要以实际的demo来讲解使用方法。本文所展示示例的完整代码已上传到GitHub。GitHub 第三方登录前置准备在访问Github的API接口之前,需要先访问https://github.com/settings/applications/new,然

2021-11-21 18:52:16 2277 2

原创 Java 17 实现 cls 清屏功能(与 jni 比较)

前言以往如果需要调用C/C++代码去实现一些底层的操作,需要使用JNI(Java Native Interface)。就以cls清屏功能为例,需要自己编写相应的C/C++并生成dll文件,然后再通过JNI的方式调用dll来实现相应的功能,具体步骤可以参考这篇博客:使用JNA在Java中实现cls(命令行清屏)功能,这里展示了如何使用基于JNI的JNA框架来调用dll文件去实现cls清屏功能。而在Java 17中,我们便不再需要编写C/C++代码以及生成dll文件,而仅仅只需要写Java代码即可(目前还处于

2021-11-20 16:44:18 2656

原创 扫码登录的简单实现

前言本文将介绍基于SpringBoot + Vue + Android实现的扫码登录demo的总体思路,完整代码已上传到GitHub。Web端体验地址:http://47.116.72.33/(只剩一个月有效期),apk下载地址:https://github.com/zhangjiwei1221/qrscan/releases/tag/0.0.1。用户名:非空即可,密码:123456,效果见文末,整体实现如有不妥之处,欢迎交流讨论,实现部分参考二维码扫码登录是什么原理。项目简介后端:SpringBoo

2021-09-21 21:56:37 7241 26

原创 以若依为例讲解函数式接口的应用

前言函数式接口作为Java8的新特性之一,和Stream一样可以让Java代码变得更加简洁优雅,而本文将以若依项目的代码为例,讲解如何使用函数式接口重写其中关于角色管理、岗位管理、参数管理等的新增和修改校验的代码,提供一个在日常中使用函数式编程优化代码的思路,如有错误之处,欢迎一起讨论。逻辑梳理在正式改造之前,我们先梳理一下新增和修改中的校验逻辑,以参数管理为例,在新增或者修改时,会对参数的键名进行校验:在新增的时候,整个校验逻辑则比较简单,只需要按照参数键名到数据库到数据库中进行查询即可,如果查

2021-09-11 09:21:18 998

原创 使用 EasyExcel 动态添加自增序号列

前言本文将介绍如何通过使用EasyExcel自定义拦截器实现在最终的Excel文件中新增一列自增的序号列,最终的效果如下:此外,本文所使用的完整代码示例已上传到GitHub。实现本文主要是通过自定义一个继承AbstractRowWriteHandler的拦截器来实现在最终导出的结果中新增序号列,通过修改源码中保存头部标题的Map内容来给自己添加的序号列留出位置,先展示最终的代码:/** * 自定义 excel 行处理器, 增加序号列 * * @author butterfly * @da

2021-09-05 16:20:34 5962 11

原创 Nginx 基本安装与配置(多平台)

文章目录前言WindowsLinuxMacOS端口配置反向代理配置HTTPS资源链接前言本文将介绍Nginx的基本安装及配置,并给出不同平台(Windows、Linux、MacOS)下的安装及配置方式。最后,本文所使用的Nginx版本文件可见文末的网盘链接或者通过官网链接自行选择下载。Windows在windows上我安装的是nginx-1.21.1,并且采用压缩包安装方式(压缩包见文末资源链接),首先将压缩包解压到指定文件夹(这里位置可以自己选择其它位置,一般不建议系统盘,可能会出现权限问题,由于

2021-07-26 10:05:33 505

原创 Jenkins 自动部署 SpringBoot 项目总结

文章目录前言下载并运行 Jenkins环境配置项目构建配置:运行部署前言本文将介绍如何使用Jenkins自动部署基于Gradle的SpringBoot项目,其中Jenkins服务运行在Win10虚拟机下,部署的项目运行在Linux服务器机下,项目使用GitHub托管。下载并运行 Jenkins首先在官网下载war包,在运行之前,需要确保本地已安装Java环境以及下载好Git,可以参考JDK 安装及配置总结(多平台),同时可以配置JENKINS_HOME环境变量,用于后续存储Jenkins的文件(这里

2021-07-24 09:08:58 1256 1

原创 Tomcat 基本安装及配置总结(多平台)

文章目录前言WindowsLinuxMacOS端口配置配置HTTPS资源链接前言本文将介绍Tomcat的基本安装及配置,并给出不同平台(Windows、Linux、MacOS)下的安装方式。同时,本文所使用的Tomcat版本文件可见文末的网盘链接或者通过官网链接自行选择下载。除此之外,在最后还会简单介绍如何进行Tomcat的端口配置以及配置https。Windows在windows上我安装的是apache-tomcat-8.5.69-windows-x64,并且采用压缩包安装方式(压缩包见文末资源链

2021-07-18 16:23:25 503 1

原创 Redis 基本安装及配置总结(多平台)

文章目录前言WindowsLinuxMacOS资源链接前言本文将介绍Redis的基本安装及配置,并给出不同平台(Windows、Linux、MacOS)下的安装方式。同时,本文所使用的Redis版本文件可见文末的网盘链接或者通过官网链接自行选择下载。Windows在windows上我安装的是Redis-x64-3.0.504,并且采用压缩包安装方式(压缩包见文末资源链接),首先将压缩包解压到指定文件夹(这里位置可以自己选择其它位置,一般不建议系统盘,可能会出现权限问题,由于我使用的虚拟机环境测试,所

2021-07-11 16:55:40 341

原创 MySQL 基本安装及配置总结(多平台)

文章目录前言WindowsLinuxMacOS资源链接参考链接前言本文将介绍MySQL的基本安装及配置,并给出不同平台(Windows、Linux、MacOS)下的安装方式。同时,本文所使用的MySQL版本文件可见文末的网盘链接或者通过官网链接自行选择下载。Windows在windows上我安装的是mysql-5.7.34-winx64,并且采用压缩包安装方式(压缩包见文末资源链接),首先将压缩包解压到指定文件夹(这里位置可以自己选择其它位置,一般建议系统盘,可能会出现权限问题,由于我使用的虚拟机环

2021-07-04 18:30:43 1183 6

原创 JDK 安装及配置总结(多平台)

文章目录前言WindowsLinuxMacOS资源链接总结前言本文将介绍JDK的基本安装及配置,并给出不同平台(Windows、Linux、MacOS)下的安装方式。同时,本文所使用的JDK版本文件可见文末的网盘链接或者通过官网链接自行选择下载。Windows首先将jdk1.8.0_291.zip文件解压到一个文件夹下,我这里解压到D:\\java目录下:接下来就需要进行环境变量相关的配置,以便可以全局使用java命令,而例如tomcat等软件也依赖JAVA_HOME来找到java的位置,下面就

2021-06-27 22:16:09 501 1

原创 Java 跨平台获取 MAC 地址的两种方法

前言有时我们因为软件授权或者其它需要获取主机唯一标识而需要获取用户主机的MAC地址,而本文则将介绍如何通过Java来实现跨平台获取MAC地址的两种方法,同时具体的代码也已上传到GitHub。如果不希望将 GitHub 的代码克隆到本地查看,但是又无法忍受在网页查看代码时无限的链接嵌套,可以尝试在网址的 GitHub 单词后加上 1s,即可在网页中有通过 VSCode 查看代码的效果,例如本文是 https://github1s.com/zhangjiwei1221/blog/blob/master/m

2021-05-30 20:26:58 624 2

原创 单调栈、单调队列及其应用

定义单调栈,顾名思义,即内部元素满足单调递增(递减)的栈,下面用Java代码展示一个栈内单调递减的实现:public static void main(String[] args) { int[] nums = { 3, 7, 6, 5, 4, 1, 8, 2 }; Deque<Integer> stack = new LinkedList<>(); for (int num : nums) { // 如果栈非空,判断栈顶元素是否小于当前遍

2021-03-07 15:17:14 312 2

原创 SpringBoot + Vue 实现基于 WebSocket 的聊天室(单聊)

前言在前一篇文章SpringBoot 集成 STOMP 实现一对一聊天的两种方法中简单介绍了如何利用 STOMP 实现单聊,本文则将以一个比较完整的示例展示实际应用,不过本文并未使用 STOMP,而是使用了基础的 websocket 进行实现,如果想利用 STOMP 实现,参考上一篇文章稍加修改即可,此外,建议你阅读以下前置知识,如果比较熟悉就不再需要了:模拟 Tim 实现自定义的且可动态显示的滚动条SpringBoot 集成 WebSocket 简单模拟群发通知云服务器安装redis及与Spri

2021-02-07 15:22:46 9690 53

原创 SpringBoot 集成 STOMP 实现一对一聊天的两种方法

前言之前写过一篇SpringBoot 配置基于 wss 和 STOMP 的 WebSocket,而本文则将介绍两种实现单点聊天的方法,如果对配置基于 STOMP 和 wss 的 WebSocket 不太熟悉,建议先回看一下,本文的完整代码同样也已上传到GitHub。效果在介绍最终的实现之前,先看一下效果,为了方便展示,使用了 iframe,以便可以同时展示四个窗口:实现为了实现能够将信息发给特定的用户,本文主要借用了 spring-messaging 的 SimpMessagingTemplat

2021-02-06 14:59:48 2093 12

原创 模拟 Tim 实现自定义的且可动态显示的滚动条

前言这两天在写一个基于 SpringBoot + Vue 简单聊天室样例,然后中间想要实现一个像 Tim 的消息滚动条,中间也查了一些资料,颇费周折,下面就介绍一下具体的思想思路,为了展示和理解方便,本文用原生 js 实现,本文所使用的完整代码也已上传到GitHub。效果在展示具体的代码思路之前,先展示一下最终的效果:可以发现滚动条默认会出现末端,且滚动条也只有鼠标移到聊天区域时才会显示,下面就就介绍具体实现。实现滚动条样式实现首先是滚动条样式的代码::root { --scroll-

2021-02-03 11:42:33 440 1

原创 SpringBoot + Vue 集成 JWT 实现 Token 验证以及一种 Token 刷新策略的实现

前言本文将介绍基于 SpringBoot 和 Vue 的前后端分离项目集成 JWT 的一种思路,此外还包括在包括记住密码功能情况下 Token 的刷新策略,本文假设你对以下知识有一定的了解,如果未接触过,建议先看一下推荐链接的内容:JWT 的基本知识:JWT入门教程跨域问题:解决前后端分离项目跨域问题SpringBoot 集成 redis:通过源码了解redis的自动配置下面这张图是本文实现 Token 验证以及刷新 Token 的基本思路,本文展示了实现最终效果的核心代码,完整代码(包括前端

2021-02-01 13:00:36 1722 7

51记账(安卓).zip

一个简单的安卓记账小程序,包括用户添加收支信息,查询收支信息,设计预算等基本功能,未使用过多的安卓新特性,主要以ListView布局为主。

2020-07-26

空空如也

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

TA关注的人

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