
代码段
文章平均质量分 83
洛书i
学海无涯 回头是岸
展开
-
用SpringBoot做一个Windows可挂载到本地的NAS网盘
先看使用效果能在上面修改删除添加文件:1. 准备工作调研了一下,windows挂载的几种方式如下:1. NFSv3(RFC1813)可以基于Netty做开发,需要基于RFC1813实现linux的网络协议服务器2. FTP(以前实现过 Apache有开源的Jar内嵌了FTP服务)3. WebDav(tomcat自带了WebDav的Servlet 基于源码改造改造即可使用)2. 选型工作因为NFSv3只有RFC文件,资料比较少如果要实现需要抓包看TCP和UDP,成本较大所以未采原创 2022-01-06 12:16:19 · 4010 阅读 · 13 评论 -
支持回拨性能超过SNOWFLAKE3倍的烟花ID生成器
最近写了个ID生成器: FireWork。项目地址: firework-id-generator16 byte顺序字符串[8byte时间戳 1byte回拨位 2byte ServiceId 5byte序列号]序列号不在下一秒重置总体趋势递增支持时间到 8888年左右支持3844台相同微服务之间id唯一支持时钟回拨无数次,61次后时间还小于上次回拨时间时通过消费未来时间确保ID不重复支持监听时钟回拨告警或者其他业务处理性能在多线程的时候表现良好(12000/ms 多余snowflake 400原创 2021-09-28 18:50:08 · 15659 阅读 · 0 评论 -
[已实现]沙盒环境并不安全,不联网的机器并非Copy不出东西
先放结果:可以!!。看图片其实已经能猜到怎么做了,二维码!!只要把文件的内容分片编码成二维码,然后外面解析二维码在文件对应的位置写入数据就OK了。理论上所有物理隔离的只要有显示屏幕,有摄像头就都能传输数据。代码地址coder-transfer使用方法:将代码打成jar包接收文件: eg: java -jar code-transfer-0.0.1-SNAPSHOT.jar R 10 30 550550 512 100 1.zip R表示接收 10 30 是截取屏幕的左上角 550 550原创 2021-01-06 20:54:09 · 36702 阅读 · 0 评论 -
怎么侵入性最少地代理一个类下的所有方法,以及方法返回对象的所有方法
想写一个数据库连接工具[DataGrip]连接Redis的功能,所以要知道它调用了Driver的哪些类。但是苦于很少有代码侵入性低但是能监控所有执行方法返回值的。干脆自己撸一个代码比较少,但是解决了几个比较头疼的问题终于算是实现了。 只要给定一个入口类,几乎把该类下面的所有方法及其方法的返回的类都能监控到,其中操作比较有意思。主要涉及的技术点:动态字节码生成无参构造函数的类,骗过CGLIB检测 自写类加载器加载类 重写CGLIB代理类,不用通过构造函数,通过实体直接生成代理类效果图,只对Dr.原创 2020-12-24 16:43:27 · 51035 阅读 · 1 评论 -
字典树[包含搜索和计算数量的功能]
package com.cic.crm.dataplatform.service.scene.field;import java.util.HashMap;import java.util.Map;import java.util.Optional;/** * @Author luoshu * @Class TrieNode * @Description 字典树节点 */public class TrieNode { private Character data; .原创 2020-07-24 17:51:49 · 29443 阅读 · 0 评论 -
扫描一个类所在目录下的所有类的类名[包括Jar和非jar]
/** * 扫描一个类所在目录下的所有类的类名 * * @param clazz 要扫描的基础类 * @param filter 过滤器 为空的时候不过滤 * @return 一个全路径类名的List */ public static List<String> scanAllClass(Class clazz, Function<String, Boolean> filter) { List<.原创 2020-07-24 11:58:38 · 46168 阅读 · 0 评论 -
[已实现]adb偷取蚂蚁森林能量
先放效果图代码如下 需要图片素材的在附件里import osimport sysimport aircv as acimport timebashPath = "D:/Tools/adb1/py/pic/"sys.path.append("D:\Tools\adb1")#os.popen("adb shell am start -n com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin")h..原创 2020-07-09 15:33:56 · 38962 阅读 · 0 评论 -
SpringBoot Redis自适应配置[Cluster Standalone Sentinel]
核心代码段提供一个JedisConnectionFactory 根据配置来判断 单点 集群 还是哨兵 @Bean @ConditionalOnMissingBean public JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = null; String[] split = node.split(","); Set&.原创 2020-07-07 14:40:59 · 54920 阅读 · 2 评论 -
JAVA获取编译GC内存运行时环境参数信息[ManagementFactory研究,全部Bean方法调用示例]
ManagementFactory是JAVA提供用于监视和管理 Java虚拟机以及 Java 虚拟机在其上运行的操作系统。它同时允许从本地和远程对正在运行的 Java虚拟机进行监视和管理,提供JVM堆的使用情况,以及GC情况,线程信息。因为ManagementFactory 提供的Bean比较多,一个个看比较麻烦。故而用反射获取所有bean,调用bean下的所有无参方法,将结果格式化成报文。这样就能比较全面的看到ManagementFactory提供的能力。然后根据报文,找自己需要的bean和方..原创 2020-06-17 18:31:51 · 21960 阅读 · 0 评论 -
数据库幻读解决方案
有时候我们会有业务场景去解决数据库幻读现象:(比如某条记录的某几个属性合起来需要在记录里唯一)这个时候我们需要做的是添加一个校验字段对他做唯一约束,值是这几个字段的拼接这里为什么用校验字段而不用原字段呢? (有时候我们在做删除的时候只做逻辑删除 这时候唯一约束就好导致失效的记录让有效的记录无法插入, 而校验字段不一样 你在做失效处理的时候给校验字段赋一个随机值就好了)...原创 2020-06-10 13:42:35 · 46378 阅读 · 0 评论 -
集合里有多种子类反序列化 子类属性丢失问题 Java代码实现[解决循环引用问题]
先放一段代码public class Test { public static void main(String[] args) { //建立一个数组 第一个放入child 第二个放入parent List<Parent> list = new ArrayList<>(); Parent parent = new Parent(); parent.setX("1"); Child chil原创 2020-06-07 20:59:34 · 60437 阅读 · 0 评论 -
JPA+H2内嵌数据库
开发个人项目的时候有时候会遇到,用数据库过于麻烦,这时候内嵌一个H2是一个不错的选择。更何况H2提供管理控制台界面,可以直接执行Sql语句项目里要内嵌H2的话需要引入H2的依赖 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.197</version>原创 2020-06-04 13:47:45 · 67198 阅读 · 0 评论 -
关于blob与流互转的问题
网上有好多blob与byte[]互相转换的代码,但是很难找到流直接写入到数据库的。显然流写入效率更高,内存占用更少(不需要把所有数据放到内存里面),一下便是代码(基于Spring Data JPA的版本的 JDBC的话实现类同)import org.hibernate.Hibernate;import org.hibernate.Session;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springfra原创 2020-06-02 10:18:52 · 27642 阅读 · 0 评论