Tools
Tools
宇宙超级无敌程序媛
Talk is cheap, show me the code.
展开
-
AI —— 一看就懂的代码助手Copilot获取教程
介绍人工智能代码助手copilot的申请与使用方式。原创 2023-04-10 10:00:00 · 4411 阅读 · 1 评论 -
Lombok常用方法及原理介绍(AST)
Lombok常用方法及原理介绍(AST)原创 2022-12-21 15:25:31 · 402 阅读 · 0 评论 -
Lombok常用方法及原理介绍
⼀种简化源码提⾼编程效率的⼯具,⽤于⽣成常⽤的代码。原创 2022-08-03 17:58:38 · 790 阅读 · 0 评论 -
Shell —— 常见问题解读
local局部变量声明,作用域仅限于函数内部。IFSInternal Field Seprator ,内部域分隔符。一种 set 变量。set变量显示设置shell变量,仅在本 shell 中有效。env变量显示设置用户环境变量 ,仅在当前会话中有效。env 变量比set变量的作用域要大些,它可以在 subshell 中使用。2>&1将标准错误输出重定向到标准输出。linux系统中,0、1、2是文件描述符。名称 代码 操作符 Jav原创 2022-04-26 20:14:46 · 443 阅读 · 0 评论 -
Tools —— Mac m1安装docker
根据自己的系统下载资源Docker官网打开下载包根据提示拖拽即可在启动台找到docker应用原创 2022-03-28 19:45:53 · 5571 阅读 · 0 评论 -
Go —— Mac m1安装go语言环境
macOS(或 Linux)缺失的软件包的管理器 — Homebrew原创 2022-03-28 14:29:51 · 1774 阅读 · 0 评论 -
Error —— com.sun.crypto.provider.HmacSHA1 cannot be cast to javax.crypto.MacSpi
问题单元测试报错如下:com.sun.crypto.provider.HmacSHA1 cannot be cast to javax.crypto.MacSpi解决原因:md5鉴权出错。在类上增加注解。@PowerMockIgnore("javax.crypto.*")...原创 2022-01-13 20:10:04 · 529 阅读 · 0 评论 -
项目 —— RESTful API接口设计标准及规范
示例新增POST/abc删除DELETE /abc/{id}更改PUT /abc查询GET /abc/{id}安全性和幂等性安全性:不会改变资源状态,只是读取; 幂等性:执行1次和执行N次,对资源状态改变的效果是等价的。 安全性 幂等性 GET √ √ POST × × PUT × √ DELETE × √ ...原创 2021-07-20 14:58:31 · 185 阅读 · 0 评论 -
Java —— Stream的使用
Stream在Java8中出现,将要处理的元素视作流。流的种类顺序流 stream 主线程按顺序对流执行操作。 并行流 parallelStream 内部以多线程并行执行的方式对流进行操作,需要流中的数据处理无顺序要求。 流的创建xxx.stream(); Arrays.stream(xxx); Stream.of(1, 2, 3, 4, 5, 6); Stream.iterate(0, (x) -> x + 3).limit(4...原创 2021-07-06 21:21:59 · 516 阅读 · 0 评论 -
数据库 —— 本地安装mysql数据库服务教程
准备条件电脑(Windows)网络下载安装包https://dev.mysql.com/downloads/mysql/下载完成后,将zip进行解压到相关目录。安装以管理员身份打开 cmd 命令行工具,并将目录定位到更改解压的mysql文件夹中的bin文件夹执行安装mysqld install初始化data目录mysqld --initialize-insecure启动服务net start mysql设置root用户密码原创 2021-06-24 14:51:52 · 190 阅读 · 0 评论 -
设计模式 —— 观察者模式
观察者模式以报纸的订阅为例:报社负责出版报纸。 向报社订购报纸后,当有新的报纸出版,报社就会给你送来。 当你不想在收到报纸时,取消订购即可。报社 + 订购者 = 观察者模式。观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。主 题(报社) :发送通知给所有实现了观察者接口的对象。观察者(订购者):实现观察者接口,并注册为观察者即可。松耦合松耦合是观察者模式的一个重要特点。改变主题或观察者,并不会影响另一方。如果...原创 2021-06-23 19:09:55 · 135 阅读 · 1 评论 -
Zeal —— API文档离线阅读器
背景在软件开发的过程中,常常需要查阅多个API文档,但网络环境等因素常常导致在线文档查看用户体验并不好。为此,介绍一款离线的API文档阅读器,Zeal。Zeal中自配了多种API文档可供查阅,如ElasticSearch、go、各版本Java、Mysql、MongoDB等。官网下载地址https://zealdocs.org/download.html#windows使用教程傻瓜式安装过程就不说了:)更改文档本地保存文件夹查看文档安装文档点击Availab原创 2021-06-21 17:37:33 · 617 阅读 · 0 评论 -
计算机网络 —— ip相关
OSI七层网络模型OSI七层网络模型 TCP/IP四层模型 功能 协议与应用 应用层 应用层 为应用程序提供网络服务 HTTP、FTP、SMTP、Telnet、DNS 表示层 主要负责数据格式的转换。处理数据的格式,处理数据加密和压缩。将应用处理的信息转换为适合网络传输的格式 编码方式,图像编解码、URL字段传输编码URL加密,口令加密,图片解码 会话层 负责维护两个结点之间通信连接的建立、管理和终止,以及数据的交换 .原创 2021-06-16 14:44:55 · 92 阅读 · 0 评论 -
消息队列(Message Queue)
定义消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。适用场景异步处理减少冗长的业务代码(和异步线程相比),降低响应时间,提高系统吞吐量。解耦如上图所示,如果不使用消息队列,代码中会内嵌很多其他系统的业务逻辑,每次加一个要调用的接口然后还要重新发布系统,问题排查也麻烦。只需原创 2021-06-15 20:09:41 · 1880 阅读 · 1 评论 -
XML的验证模式 —— DTD与XSD
DTD文档类型定义。在项目中mapper中的xml(用来写sql的),一般会使用"http://mybatis.org/dtd/mybatis-3-mapper.dtd"PCDATAPCDATA 的意思是被解析的字符数据(parsed character data)。可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。文本中的标签会被当作标记来处理,而实体会被展开。不过,被解析的字符数原创 2021-05-10 19:23:46 · 184 阅读 · 0 评论 -
Spring —— 条件加载注解@ConditionalOnxxx
问题原创 2021-05-10 15:28:28 · 1993 阅读 · 0 评论 -
惊!Linux服务器内存耗尽竟是因为它!
问题发现服务宕机,登录到相关堡垒机上查看,发现内存占用95%+。原创 2021-05-10 14:51:32 · 350 阅读 · 0 评论 -
Redis —— linux上的常用指令(redis-cli)
进入redisredis-cli -a 密码选择DB# 选择1号数据库select 1查看所有的keykey *通配符查找#查找abc开头的keykeys abc*原创 2021-04-01 14:49:42 · 629 阅读 · 0 评论 -
Net —— 常用端口号
网络常用端口服务名 端口 FTP文件传输服务 21 SSH远程连接服务 22 TELNET终端仿真服务 23 SMTP简单邮件传输服务 25 DNS域名解析服务 53 HTTP超文本传输服务 80 HTTPS加密的超文本传输服务 443 TCP服务端默认端口 8080 Nginx服务器的端口 8888 fastdfs服务器默认端口 22122 数据库常用端口数据库 端口 s..原创 2021-03-01 16:20:46 · 1093 阅读 · 0 评论 -
Java —— 简化多个if-else(枚举enum与switch的配合使用)
问题在开发中,如果有多种条件的话,往往会使用多个if-else,看起来较为混乱,逻辑不够清楚,那么有什么好的方法解决呢?解决枚举enum与switch的配合使用。代码示例switch String thisCode = "1"; switch (Objects.requireNonNull(ABC.getByValue(thisCode))) { case原创 2021-02-25 22:12:25 · 593 阅读 · 0 评论 -
Java —— 断言(以Spring的Assert为例)
问题Java中的断言适合什么场景?如何使用?解决当断言的条件为假的时候,程序会抛出异常,终止当前任务的执行。当这个关键字后面的条件为真的时候,程序继续执行下一句语句。示例(以Spring的Assert为例) import org.springframework.util.Assert; public void test(String a) { Assert.notNull(a,"字符串a为空 :("); }方法汇总Assert.notNull(Object ob原创 2021-02-23 17:07:47 · 737 阅读 · 1 评论 -
GIT —— 删除本地分支后无法从远端拉取代码
问题在使用git管理代码时,出现一些问题导致分支无法切换(可能是各种各样的问题),如果删除本地分支后依旧无法从远端拉取代码,应该如何解决?解决找到项目的文件夹目录,删除.git文件夹重新绑定远端分支git initgit remote add origin 项目远端地址重启IDEA...原创 2021-01-29 17:42:39 · 745 阅读 · 0 评论 -
IDEA调试小技巧 —— Evaluate调试工具
问题在debug调试代码时,如何更快的定位问题,并运行指定代码。解决使用idea自带调试工具Evaluate Expression。共支持两种模式:表达式模式、代码模式。可以支持动态查看,以及代码段调试。调试步骤一、打断点二、Debug模式运行三、右键调出Evaluate四、表达式模式五、由表达式模式切换到代码模式六、运行指定代码段...原创 2021-01-28 12:00:08 · 14086 阅读 · 1 评论 -
Spring —— 如何获取系统环境变量与application配置文件中的变量?(EnvironmentAware)
问题如何获取系统环境变量与application配置文件中的变量?解决使用EnvironmentAware。实现接口 EnvironmentAware 并重写方法 setEnvironment 。代码public class EnvironmentAwareDemo implements EnvironmentAware { @Override public void setEnvironment(Environment environment) {原创 2021-01-26 21:22:00 · 1282 阅读 · 0 评论 -
Java —— 自动生成get、set方法(使用lombok的注解@Getter @Setter)
问题get、set方法写起来十分无聊,看着也难受,有没有简便的方法呢?解决1、在IDEA中安装lombok插件2、在项目中增加lombok的maven依赖 <!--lombok 引入--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.原创 2021-01-11 21:19:57 · 2763 阅读 · 0 评论 -
Java —— 使用CXF调用WebService接口,CXF配置
新建项目(以idea为例)File > New > Project,选择Spring Initializr然后点击 【Next】下一步 填写GroupId(包名)、Artifact(项目名) 即可。点击 下一步 选择依赖Spring Web Starter。 设置项目名。下载cxf工具包下载地址解压CXF之后,把cxf工具包lib下的jar包全部放到工程的lib下。配置环境变量1、新建环境变量CXF_HOME,变量值为解压好的cxf工具包地址,比如E:\...原创 2021-01-11 20:51:26 · 1016 阅读 · 0 评论 -
Java —— try-with-resource 省去手动关闭资源
问题在使用流时,关闭流是非常重要的,往往是在finally中处理,有没有什么方法可以简化呢?解决使用try-with-resource可以自动关闭资源。try-with-resources 语句确保了每个资源在语句结束时关闭。所有实现了java.lang.AutoCloseable接口(其中,它包括实现了java.io.Closeable的所有对象),可以使用作为资源。代码 //在try中定义想要其自动关闭的资源,可以使用;分割多个 //注意:...原创 2020-12-22 21:50:26 · 435 阅读 · 0 评论 -
Java —— 解决TCP粘包的通用方法(使用分隔符分割)
问题在使用TCP传输数据时,粘包问题是必须要处理的,那么当服务端发送数据时使用分隔符来进行数据分割时,客户端应该如何解析数据呢?场景设计服务端与客户端约定,服务端传输给客户端的数据以"$$$$"开头,以"&&&&"结尾。正常发送的消息:"$$$$这是一条正常的消息&&&&"产生粘包的消息:"$$$$这是一条粘包的消息&&&&$$$$这是一条粘包的消息&&&&"原创 2020-12-09 21:02:35 · 1479 阅读 · 0 评论 -
Java —— 字符串与二进制字节流的相互转换
使用场景在进行数据传输时(socket等等),往往需要使用二进制字节流进行传输。字符串转换为二进制字节流 String ori = "待转换的字符串"; ori = ori.getBytes(StandardCharsets.UTF_8);二进制字节流转换为字符串 //以socket数据监听为例 byte[] bytes = new byte[inputStream.available()]; inputStream.read(bytes);原创 2020-12-08 16:22:13 · 3491 阅读 · 0 评论 -
Java —— UTF-8编码转换
问题如何将字符串转换为UTF-8编码?解决String utfStr= java.net.URLEncoder.encode(待转换的字符串);原创 2020-12-08 14:41:04 · 1023 阅读 · 0 评论 -
Java —— 将class类转换为JSON形式
问题如何将java的实体类转换为json?解决import com.alibaba.fastjson.JSON;String jsonStr = JSON.toJSONString(待转换的实例);原创 2020-12-08 13:56:30 · 4655 阅读 · 0 评论 -
Java —— 将一个实体复制给另一个实体,两个实体中有相同字段
问题目前有两个实体,部分字段相同,部分字段不同,想将一个实体复制给另一个实体,但不想写冗长的复制代码,应该如何处理呢?解决import org.apache.commons.beanutils.BeanUtils;//a复制给bBeanUtils.copyProperties(a, b);...原创 2020-12-04 17:08:12 · 4342 阅读 · 2 评论 -
SSO —— 单点登录CAS与OAuth2
背景在系统开发初期,系统很少,每个系统都有自己的登录模块,用户直接使用自己的账号进行登录即可。但当功能不断完善,为了合理利用资源并降低耦合性,往往需要将单系统拆分为多个子系统。以阿里系的网站为例,一个网站背后有众多的子系统,用户的一次交易或操作往往可能需要十多甚至几十个子系统的协作,如果每个子系统都需要用户进行登录验证,那么用户就需要登录几十次,这显然是不可行的。那么现在我们面对的情况如下: 当前有多个子系统。 在任何一个子系统登录后,其他系统均无需再次登录。原创 2020-11-24 15:05:37 · 6605 阅读 · 4 评论 -
Java —— @DS切换数据源(在同一类 / 方法中访问不同的数据库)
问题如何在同一个java文件中自由切换,访问不同的数据源?适用情况不同数据库之间的数据库传输不同数据库之间的数据核对。。。解决原创 2020-11-20 21:00:11 · 11117 阅读 · 0 评论 -
SQL —— 新增数据时,数据相同产生冲突怎么办
问题在向数据库中新增数据时,如果使用insert语句,在数据产生冲突(PRIMARY KEY或UNIQUE索引相同时),就会报错,应该如何处理呢解决INSERT IGNORE在产生数据冲突时,保留原数据,不进行任何操作。REPLACE INTO原理功能与insert类似,但当产生数据冲突时,会先删除旧数据,再生成新数据。数据冲突共有两种可能PRIMARY KEY相同 UNIQUE索引相同返回值被删除和被插入的行数的和注意如果是自增主键的话...原创 2020-11-20 11:32:21 · 1261 阅读 · 0 评论 -
SQL —— 获取数据库中的所有表名
问题如何获取数据库中的所有表名解决SELECT table_name FROM information_schema.TABLES原创 2020-11-18 17:10:00 · 424 阅读 · 0 评论 -
SQL —— #{} 和 ${}
问题sql语句可以使用#{} 或${}进行传参,那么他们有什么区别,使用上有什么需要注意的地方呢?解决在预编译中的处理是不一样的。#{} 在预处理时,会把参数部分用一个占位符 ? 代替,变成如下的 sql 语句:select * from a where name = ?;而 ${} 则只是简单的字符串替换,在动态解析阶段,该 sql 语句会被解析成:select * from a where name = 'zhangsan';实际使用优先使用 #{}。因为 ${} 可能会导致..原创 2020-11-17 21:15:55 · 3477 阅读 · 0 评论 -
Java —— Gradle 与 Maven的区别
Gradlegradle是构建工具,为了构建,带有依赖缓存功能。gradle可以完成非常复杂的构建,适合android这种重客户端,组件很多很复杂的应用(巨石应用),如果没有特别复杂的打包要求。gradle没有依赖包管理功能,它本地保存的是依赖缓存,它也没有本地仓库的概念,想在gradle里加一个私有依赖特别麻烦(maven一个命令行就能安装到本地依赖库)。gradle升级也许会有兼容问题。Mavenmaven是依赖包管理工具,通过插件带有一定的构建能力。maven有完善的.原创 2020-11-13 20:19:37 · 697 阅读 · 0 评论 -
Java —— json串转为实体类
问题如何将json串转成某个实体类解决import com.jdjr.maa.common.utils.JsonUtil;JsonUtil.parseObject(searchHits.getHits()[i].getSourceAsString(), EsSearchPubDto.class)原创 2020-11-13 18:37:03 · 537 阅读 · 0 评论 -
Windows —— 查看端口占用情況及杀死进程
问题如何查看Windows下的端口占用情况解决1、Win + R。2、输入cmd后回车。3、输入 netstat -ano原创 2020-11-13 18:23:38 · 107 阅读 · 0 评论