- 博客(805)
- 资源 (111)
- 问答 (1)
- 收藏
- 关注
原创 分歧器 friso 的编译和安装测试
Friso 是使用 c 语言开发的一款中文分词器,使用流行的 mmseg 算法实现。完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP 等。源码无需修改就能在各种平台下编译使用,加载完 20 万的词条,内存占用较小,一般稳定为 14.5M 左右。至此,完成基本的编译和测试,对于自定义词库等更多配置,可以参考根目录中的。,上传到 Linux 服务器并解压缩,然后按照如下步骤编译、运行测试。先下载最新的 friso 代码包。
2024-03-25 17:40:49 212
原创 基于 JavaAgent 代理技术实现 class 字节码插桩(bytebuddy)
先描述一个场景,生产有一个正在运行的java项目,以某 springboot-service.jar 为例,项目发布后发现了某个http接口响应较慢,此时你希望定位这个http接口执行过程中依次调用的几个主要方法的分别执行耗时,用来作为进一步解决问题的依据。你应该怎么做?Java Agent 技术常被用于加载class文件之前进行拦截并修改字节码,以实现对Java应用的无侵入式增强。
2024-03-08 09:36:58 511 1
原创 idea Gradle 控制台中文乱码
中进行配置,具体以实际验证为准,如果修改前面一个就没问题了那就忽略这个文件的修改。注意:如果你的 idea 使用 crack 等方式破解了,那么你可能需要在文件。
2024-03-07 20:31:55 268
原创 海康监控摄像头写入文件到群晖NAS
某些型号的海康威视监控摄像头支持配置网络存储,因为支持NAS,我们可以在群晖中创建一个网络文件夹,开启SMB共享后,再配置到海康网络存储中。右下角显示测试成功后点击保存按钮保存,然后切换到硬盘管理Tab界面就可以看到添加成功的NAS网络存储了。添加成功后,需要选中做格式化处理后才会被摄像头正常写入录像文件,2、开启 SMB 文件服务。4、配置摄像头网络存储。
2024-02-29 12:27:36 391
原创 JWT基于Cookie的会话保持,并解决CSRF问题的方案
避免CSRF问题可以通过自定义Header方式的处理,所以我们可以在使用Cookie记录JWT的基础上,增加一个无实际意义并且唯一的sessionId,每个接口调用都使用自定义Header SID传递该值,在服务端使用过滤器或者拦截器验证SID的值是否和JWT中的值一致。使用JWT进行浏览器接口请求,在使用Cookie进行会话保持传递Token时,可能会存在 CSRF 漏洞问题,同时也要避免在产生XSS漏洞时泄漏Token问题,如下图在尽可能避免CSRF和保护Token方面设计了方案。
2024-02-26 11:04:53 201
原创 搭建 idea 插件仓库私服
正常情况下,我们开发的 idea 插件会发布到 idea 官方商城中,这样用户就可以在 idea 的 Marketplace 中搜索安装。但是在企业内部,有可能我们开发了很多内部插件,而不能发布到公共市场中,这种情况下我们就需要搭建一个内部的插件私服,本文讲述如何自己配置一个插件私服。
2024-02-01 19:37:54 426
原创 idea 插件开发之 HelloWorld
本文使用的 idea 2023.3 版本进行插件入门开发,首先要说明的是 idea 2023 版本及以后的 idea,对插件开发进行了一定程度的变动:1、创建项目时不再支持 maven 选项2、必须是 jdk17 及以后版本(点击查看官网版本对应关系3、默认创建的项目是基于 kotlin 的4、idea 默认没有安装 ”Plugin DevKit“ 插件,需要自己安装基于以上相关内容,本文创建一个 HelloWorld 级别的 idea 插件。
2023-12-28 10:04:42 838
原创 清理 Oracle Arch 目录中的日志文件
7、清理Oracle Arch目录:在服务器操作系统中,找到Oracle Arch目录,并手动清理该目录中的文件。确保只删除你确认已经不再需要的归档日志文件,以避免误删除重要数据。其中,sys/*****@orcl是目标数据库的连接信息,你需要将其替换为实际的用户名、密码和数据库实例名。1、登陆Oracle数据库服务器:确保你有权限访问Oracle数据库服务器,并且能够登录到服务器操作系统。这将删除7天前完成的归档日志文件。这将显示所有当前的归档日志文件列表,你可以检查是否已经成功删除了旧的归档日志文件。
2023-12-26 18:08:10 1015
原创 Spring AOP 中定义切入点 @target 与 @within 的区别
另外需要注意的是,它俩是用于匹配类的,不适用在接口上标注注解的场景。匹配被设定注解标注的类,以及它的所有子类。仅匹配被设定注解标注的类,不包含其子类。不仅匹配该类,所有继承自。
2023-12-26 15:07:49 530
原创 Gradle 配置全局私服 nexus
节点下配置使用 nexus 等私服,也可以在 gradle 的安装目录中配置全局的默认私服。操作很简单,在 gradle 安装目录中找到。在 gradle 项目代码工程中,你可以在。目录,在这个目录中创建文件。这样就可以直接生效了。
2023-12-20 13:54:27 689
原创 netty 自定义 NioServerSocketChannel、NioSocketChannel、DefaultChannelPipeline和HeadContext
【代码】netty 自定义 NioServerSocketChannel、NioSocketChannel、DefaultChannelPipeline和HeadContext。
2023-12-12 17:03:27 95
原创 Java 中使用装饰器模式 wrapped 一个不能被重写的父类中的接口方法
我们在 ClassB 中声明了一个 wrapped 变量,完全重新实现了接口 InterfaceA,重点是我们在所有的接口方法中,直接调用 ClassB 的所有对应方法,这样就相当于 wrapped 装饰了原来 ClassB 实例中的 InterfaceA,此时我们只需要对 show1 进行复写自己的逻辑即可,其他方法原样返回。在开发中,有时候使用第三方框架时,我们因为特殊需求,需要继承框架中的一个Java类重写它的某个方法来达到期望的目的。
2023-12-12 16:08:10 160
原创 ASCII码对照表
ASCII编码即美国信息交换标准代码(American Standard Code for Information Interchange)是一套共有128个字符的编码,它基于阿拉丁字母,主要作用是用来表示英语和西欧语言字符。ASCII规范编码第一次公布于1967年,ascii码在1986年完成最后一次更新。ASCII码对照表等同于国际标准 ISO/IEC 646,ASCII码对照表是世界最通用的信息交换标准。
2023-12-06 08:58:21 189
原创 SpringBoot 导入其他配置文件
文件,如果我们希望再定义一个独立的配置文件用来配置特定业务数据,而不希望把这些配置内容都堆积在 application 配置文件中,实现这个需求,我们直接使用配置文件中的。默认情况下,springboot 初始的项目中都有一个。
2023-11-22 15:28:29 220
转载 Netty中Pipeline的ChannelHandler执行顺序案例详解
1、InboundHandler是通过fire事件决定是否要执行下一个InboundHandler,如果哪个InboundHandler没有调用fire事件,那么往后的Pipeline就断掉了。2、InboundHandler是按照Pipleline的加载顺序,顺序执行。3、OutboundHandler是按照Pipeline的加载顺序,逆序执行。4、有效的InboundHandler是指通过fire事件能触达到的最后一个InboundHander。
2023-11-10 09:17:36 180
原创 Netty PipeLine 注意事项总结
1、InboundHandler是通过fire事件决定是否要执行下一个InboundHandler,如果哪个InboundHandler没有调用fire事件,那么往后的Pipeline就断掉了。2、InboundHandler是按照Pipleline的加载顺序,顺序执行。3、OutboundHandler是按照Pipeline的加载顺序,逆序执行。4、有效的InboundHandler是指通过fire事件能触达到的最后一个InboundHander。
2023-11-09 19:50:47 141
原创 maven 项目添加 git-hook 脚本,约束提交内容格式
在执行maven的 clean 或者 compile 时候,插件会自动输出。目录中的 bash 脚本来做一定的验证工作。git 提交代码,推送代码,可以通过在。
2023-11-06 16:36:28 772
原创 base64字符串转文件代码示例
需要输入的 txt 文件中,以行为单位存储了分段的base64字符串,每行最前面的序号指拆分base64大字符串的分段顺序。
2023-11-06 15:22:24 136
转载 Fiddler 过滤 js、css、jpg 等请求
Fiddler抓包时,会有很多我们不需要关注的请求,我们可以通过 Filter标签 设置 Fiddler 的过滤规则,这样我们就可以只拿到我们关注的请求了。
2023-11-03 10:52:03 892
转载 Nginx缓存方案和清除缓存
试想一下,如果用户主动清空了本地的浏览器缓存,那么是不是请求的压力又来到了服务端,为此我们可以增加web缓存服务器,当用户本地缓存失效时,可以去web缓存服务器中获取数据,而不是直接将请求打到后端服务器。前面我们知道Nginx可以对浏览器缓存进行配置,让一些静态资源缓存到用户本地存储,以提高页面的响应速度,也能降低服务端的压力。如果服务端的文件发生变化,那么也需要将文件同步到Nginx的缓存中去,因此我们需要对缓存进行删除。该指令可以设置不同响应码对应的缓存时间,超过时间缓存就会过期,但是不会删除缓存。
2023-11-02 16:34:00 715
原创 springboot 注入配置文件中的集合 List、Map
注意:如果map的key是0开头的,在自动注入map后,前面的0会被自动去除,这个要特别注意,你可以使用。如果实在不想单独出来一个Java类,你直接把。2、application.yml 配置文件。那么我们如何注入集合呢,这里我们需要使用。来将key包括起来,来避免0被去除的问题。的 Java 类上也是可以的,3、创建对应的Java对象。4、注入Java对象使用。
2023-11-02 13:39:27 1001
原创 HTTP 协议请求头 If-Match、If-None-Match 和 ETag
在 HTTP 协议中,请求头If-MatchIf-Range主要是为了解决浏览器缓存数据而定义的请求头标准,按照协议规范正确的判断和使用这几个请求头,可以更精准的处理浏览器缓存,从而达到提高系统性能和减少系统带宽的占用的目的。1、 减少了网络交互,加快页面响应速度,增强用户体验;2、 减少了网络带宽消耗,因为没有更新的资源就不需要重复返回了,特别是图片、视频、下载文件这类大响应体请求;当请求中存在上述If-xxx。
2023-11-02 11:28:55 1599
原创 微信公众号5秒内响应success的最佳处理方案
本着对编码精益求精的态度,我的做法是做精准时间处理,我以4秒为限,如果4秒以内可以处理完自己的业务逻辑,则直接返回对应需要响应给用户的消息,反之直接返回success。结合这两点内容我们能很显然的得出结论:如果我们可以通过1来完成那绝对不做2,毕竟2多了一次主动调用微信接口的操作,在一定程度上加大了我们系统的资源消耗。但是在实际业务中,即便是我们的业务处理,正常情况不会超过5秒这么久,但是系统总有可能有例外情况,我们总要考虑可能出现哪怕5%可能超出5秒的情况。以上两份代码,我都做了测试,应该没有问题。
2023-10-28 23:17:04 305
原创 Sonar:Either re-interrupt this method or rethrow the “InterruptedException“ that can be caught here.
这么提醒是为了告诉我们,在异常被捕获后,应该重新设置 interrupt 状态为 true,为后续判断 interrupt 状态的地方使用(在本文示例中就是 while 的地方会继续使用),以确保代码逻辑的正确。其实这跟线程 interrupt() 的处理机制有关,当你主动调用 interrupt() 后,会触发 InterruptedException 异常,但是线程在抛出 InterruptedException 异常时,会重置 interrupt 的状态为 false。2、在主线程中调用了子线程的。
2023-10-28 19:56:44 1514
原创 JS 清理 iframe 回收内存
当项目以tab页签方式打开多个iframe窗口时,关闭tab页签同时也需要关闭iframe并释放内存资源(特别是 IE 浏览器)。
2023-10-10 16:23:36 1108
原创 Spring @DependsOn 和 @ConditionalOnBean 的区别
最终两个实例都会创建,它用来控制当前Bean 一定在 DependsOn 所指向的Bean后面实例化。只有当所指向的Bean的实例存在时,才创建当前Bean,否则不创建。即要么都有,要么都无。1、都是当前bean实例化依赖另外的bean实例。在 Spring 中,注解。
2023-10-09 19:23:13 387
原创 FiddlerScript 脚本使用正则表达式替换响应内容
使用 Fiddler 进行抓包时,对特定 url 接口响应内容进行部分匹配替换处理,可以在 FiddlerScript 的 OnBeforeResponse 事件中编写代码来完成。
2023-09-15 13:49:04 701
原创 SpringBoot - Google EventBus、AsyncEventBus
EventBus 顾名思义,事件总线,是一个轻量级的发布/订阅模式的应用模式,最初设计及应用源与 google guava 库。相比于各种 MQ 中间件更加简洁、轻量,它可以在单体非分布式的小型应用模块内部使用(即同一个JVM范围)。
2023-08-30 17:47:27 526
原创 Windows端口占用处理
端口被占用时,大部分是后台服务持续运行使用了某个端口。4、最后为定位到的应用程序设置新的端口,或者终止甚至卸载对应的应用程序。1、打开windows的cmd命令行窗口。3、打开任务管理器根据PID确定应用程序。过滤后,确定占用端口的PID。
2023-08-29 17:17:23 271
原创 Camunda 工作流节点跳转 - 多实例节点判断和跳转
指令时不会考虑集合,并且不会为附加实例填充集合元素变量,针对这种情况,需要使用下面的处理方法。第2点,基于集合的多实例跳转节点的跳转时,需要在节点Id后追加特定字符串。注:对于目标节点是多实例的节点,如果不在节点Id后面追加框架约定的字符串。在多种工作流引擎中,Camunda框架对流程的处理控制更为强大、灵活。1、单实例节点,或者不是基于集合配置的多实例节点。如果多实例活动是基于集合配置的,则执行。,则不能自动执行触发多实例节点配置的。
2023-08-23 13:53:29 1413 1
原创 Maven 插件 maven-antrun-plugin 执行 ant 脚本
常规来说 Ant 是需要独立运行库来运行,现在的项目我们大多数基于 Maven 构建,如果你希望在编译项目的过程中(编译前中后通过 phase 控制)做相应的处理操作(自动生成文件、替换项目代码中的常量值、执行相关命令等),那么可以通过本文所述插件。示例旨在抛砖引玉的意义,能有效理解该插件的实际作用和使用方法,至于你希望运行更复杂的业务处理或者运行更多的脚本内容,你都可以在。节点中编写任意 ant 脚本内容,或者参考插件官方使用文档,指定一个独立外置的 build.xml 文件来执行 ant 脚本。
2023-08-16 10:55:34 796
原创 Maven 生成编译时间和版本Java类
你也可用这种方法生成普通的版本配置文件,例如 version.properties,上文生成 java 文件是为了在 Java 代码中的相关业务中直接使用常量。类,可以在Java代码中使用里面对应的常量,获取当前版本号和构建时间。本文使用Maven插件来自动生成一个。Maven编译后自动生成的。
2023-08-15 11:25:41 747
原创 Redis 设置密码(配置文件、docker容器、命令行3种场景)
注意:通过命令设置密码后,为了防止下次服务重启后又变成没有密码,请注意配合以上两种方式在服务重启后配置对应的密码。或者直接使用 redis 桌面客户端工具连接 redis 后进入客户端命令行。如果你本地没有默认的 redis.conf 配置文件,可以从。来为 redis 设置密码,配置完后需要重启方可生效。如果 redis 是 docker 容器,可以使用命令。通过修改 redis.conf 配置文件中的。连接到 redis 客户端命令行。
2023-07-20 13:48:13 2209
原创 基于EasyExcel的单元格合并自定义算法处理
*** Excel 行合并策略//上一行 private Row beforeRow = null;//合并规则(多个) private List < ExcelMergeStrategyModel > strategyList;//总行数(不含表头) private int dataRowTotalSize;//当前已经处理的行数(不含表头) private int dataRowCurrentSize = 0;} /*** 构造方法。
2023-07-15 15:17:31 978
ArangoDB-白皮书_什么是多模型数据库以及为什么要使用它.pdf
2020-08-23
中国“新基建”发展研究报告.pdf.zip
2020-08-17
SpringBoot学习过程各种Demo
2016-02-03
spring+jms+jta事务的消息发送和消息消费
2015-12-13
Tomcat Session Redis 共享
2015-09-20
apk加壳和伪加密(防止反编译)
2015-08-20
Java敏感词处理
2015-08-14
Android 关于设备状态和操作的API
2015-08-12
jacob、GhostScript转换Office为pdf,转换pdf为高清图片
2015-01-28
ghostscript-9.15-linux-x86_64.tgz免安装版
2015-01-15
ESXi Intel-I129V 网卡驱动
2021-08-29
springboot2.x 多数据源
2020-05-28
docker-pkg.tar.gz
2019-11-09
单核工作法图解(文字版非扫描)PDF
2018-03-29
windows包装exe创建服务文件instsrv和srvany
2017-12-04
基于jd-core的java反编译
2017-03-27
kafka-web-console-2.1.0-SNAPSHOT.zip
2016-08-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人