- 博客(238)
- 资源 (1)
- 收藏
- 关注
原创 SL651-2014中心站协议解析简单实现
SL651协议在互联网中发送时可看成是一种应用层协议。本文用框架netty解析了该协议的中心站端的一部分,协议其余部分解析类似。
2024-02-05 11:38:17 510 1
原创 mybatis类型转换器处理MYSQL数据库geometry类型转换
首先分析mysql的geometry的存储格式和输入输出格式,再实现mybatis的转换器转换geometry格式。mybatis的配置见。
2024-01-23 17:38:57 455
原创 java编译运行测试
则会在f:\test\out下生成和zy1.dto2.Demo1对应的包路径结构F:\test\out\zy1\dto2\Demo1.class。会默认在F:\test\zy\dto\目录下生成Demo1.class,如果指定编译路径f:\test\out。运行是似乎需要在classpath下,路径和包(package)严格匹配才能执行。结论:编译是需要指定输出路径-d才会生成与包(package)对应的路径。此时似乎只能在F:\test\out的classpath路径下运行。在F:\test运行。
2023-12-21 17:07:20 397
原创 SpringBoot读取properties文字乱码问题及相关问题
这中方式会将源文件中的一些中文和另一些不在 ISO-8859-1编码中的字符转换为unicode码,然后idea读取时转unicode转换为中文。就是说编辑和显示时idea先转换了一次,idea编辑器中看到的其实和源文件中的数据已经不一样了。巧合的时,SpringBoot读取properties的unicode编码字符串时会自动转为中文(yml格式就不行)。问题:在idea的编辑器中properties文件一般用UTF-8编码,当值出现中文时SpringBoot读取时出现了乱码。转换后idea编辑器显示,
2023-12-06 16:53:53 779
原创 java中转义字符的源码数据格式,内存存储数据格式和转换json后的数据格式
3.json数据解析是,字符串内部的\n 是以字符的ascll码形式发送,是有效数据,可解析成换行含义,也可只解析成字符串含义。而外部的换行直接以换行的ascll码发送,解析时忽略。要注意转义字符在每种语言的源码层面数据格式 和 内存存储的数据格式,一种语言的转义字符转换到另一种语言一版是转换到源码层面的,比如对于java来说,json可以看成一种源码。转义字符在内存存储格式 于 转换json后发送的数据格式是不一样的。因为json对于java来说可以看成一种源码,那就需要以源码的表示格式输出。
2023-10-13 17:25:09 248
原创 2023年10月记录(java双冒号写法(Lambda的简写),延迟队列,postgresql快速生成序列函数)
底层需调用本地方法java.lang.Double#doubleToRawLongBits获取浮点型原始值,并按照标准解析该值每一位。1.java中浮点转换字符串。
2023-10-11 17:40:36 84
原创 Postgresql事务测试
但是read committed是不可重复度的,一个事务中读取的2次数据的时间间隔里因为另一个事务的提交,导致2次数据读取不一致。read committed级别能解决脏读问题。其他事务未提交的数据无法读取。设置当前会话的隔里级别为REPEATABLE READ(可重复读)结果:read committed (读已提交)可见现在事务一前后读取数据一致。结果 123 24。能读到当前事务修改的数据。结果121 21。事务2查询之前的数据。
2023-09-19 11:01:23 337 1
转载 (转)一图搞懂扫码登录的技术原理和安全措施
现在扫码登录是一种很常见的登录方式。当用户需要登录某个网站时,网站会提供一种扫码登录的方式,用户打开相应的手机App,扫描网站上显示的二维码,然后在App中确认登录,网站监测到用户确认登录后,跳转到登录成功页面。从这个形式上看,扫码登录就是将用户在手机App中的登录状态同步到网站中,这篇文章就来一窥这个同步是如何发生的。
2023-08-29 16:53:34 352
原创 CF1826E. Walk the Runway(位图)
位图基本思想就是使64位数Long类型中每一位bit表示大小或存在等关系。表示关系的状态压缩后,能利用硬件的位运算使复杂度优化64倍。思路:该题关键是预处理需要求出在每一行m中,每一列元素的两两大小关系。需要时间复杂为O(m*n^2)。该题中预处理时需要对每一行进行排序,以便后一列利用前一列的结果。位图也可利用语言中自带的库函数。使用位图进行优化,时间复杂度优化为O((m*n^2)/64)。然后在用dp求出最大利润P。
2023-07-01 09:14:41 198
原创 下载文件抓包分析
当传输大文件时,无法开始确定长度,采用Transfer-Encoding: chunked方式。分割成几个chunk在一次http请求。
2023-04-24 14:44:13 148 1
原创 Sa-Token源码简单阅读
获取权限在第三方框架snowy中比较简单,因为缓存中已经存有token和session的映射(session中存有用户信息),直接通过token就能在缓存中取到了。取角色权限未必需要在过滤器中调用,可以在任何需要的时候调用。第三方框架snowy在登录时又在缓存中存了用户权限角色基本信息,方便单点登录时取权限角色信息(存在上面session的dataMap中)中存入用户信息(一般必须要有用户标识和访问token,或再加一些附加信息如用户的角色权限),再返回访问token给客户端。3.获取角色权限的方式。
2023-04-23 10:58:16 802
原创 javap反编译枚举类测试
这里枚举值INSPECTION 添加了枚举值方法。编译后多产生了一个枚举的内部子类。INSPECTION 是该字类的示例。枚举是一种语法糖,编译到字节码后是一个类继承 java.lang.Enum,而枚举值是静态final成员变量。
2023-02-15 15:00:31 196
原创 java socket产生半包粘包问题
3.在应用层定义数据包长度字段,比如http协议中的content-type消息头。因为tcp协议还有底层链路层协议的限制本次单个tcp包最大的容量为1460个字节。比如TCP上传一张图片时,拆分成了多个tcp包。1.特殊字符比如回车/n /r来区分一段内容。从中可看出大多数响应为1460的整数倍。解决半包粘包一般3种思路。
2023-01-12 17:44:23 582
原创 PrintWriter类是对其他输出类的增强(待完善)
该构造函数看出,字节流被字符流增强,字符流被缓存流增强,缓存流被PrintWriter增强,很好的体现了包装设计模式和解耦的思想。
2022-12-28 17:19:18 75
原创 mybatis写postgis原生sql需要加强转类型 以及 配置geometry类型转换
再navicate写insert into "district" (name,code,position) VALUES('cesh2i3','ac1v3','SRID=4326;不会报错mybatis代码中写insert into "district" (name,code,position) VALUES('cesh2i3','ac1v3','SRID=4326;MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0)))'会报错。
2022-12-12 11:11:14 653
原创 下层设计不应受上层(调用层)特性影响
不论数据库表结构、实体类、下层api的设计应该进可能通用,这样就能更好的解耦,具有更强的复用性、扩展性。这样设计类似有向无环图结构,树形结构。对于不同的上层调用情况可以添加对应的适配层。
2022-11-02 11:31:46 87
转载 (转)Spring Data JPA 之 @Query 语法详解及其应用
Spring Data JPA 之 @Query 语法详解及其应用_曾小二的秃头之路的博客-CSDN博客_jpa @query
2022-10-28 15:42:12 459
原创 tomcat底层会默认对url地址参数或x-www-form-urlencoded格式的key-value进行url解码
解析方法在org.apache.tomcat.util.http.Parameters#processParameters(byte[], int, int, java.nio.charset.Charset)当解析到+或%是会进行url解码,源码片段解码后将添加到key-value值添加到该类这个map中 前端一般需要url编码。比如postman不会在地址中进行url编码,会在x-www-form-urlencoded消息体中进行url编码。以下从postman发出请求,这里key为 pas
2022-09-22 16:43:43 521
原创 Wireshark抓包分析
1.SYN时代表客户端发起请求,当服务端的端口未开启时,操作系统发送RST重置连接。4.ACK的值代表下一个包的起始流水号。PSH标志传输层消息体有数据发送。2.当服务端端口开启时,正常3次握手,SYN-->SYN,ACK-->ACK。5.链路层,ip层,传输层,应用层(在传输层消息体)3.四次挥手标志位FIN。有客户端或服务端发起。...........................
2022-08-26 17:41:40 1010
原创 CF1707C - DFS Trees (树上差分)
主要是先得到最小生成树,每条多余的边能排除一些最小生成树的点比如上图多余的边是(u,v),就能把u,v以下的点都排除了.差分思想就是用一些特殊点代表一种累计效果.最后在求一次前缀和. 不同情况下细节略有不同.但是怎么在O(n)复杂度得到这些点?,就要用到差分思想,参考。...............
2022-08-12 14:49:36 190
原创 2022年7月记录(SpringBoot项目Kotlin报错,SpringBoot2.6集成swagger2,entityManager.createNativeQuery)
重新编译项目Build->RebuildProject。
2022-07-18 16:56:34 533
转载 (转)点个外卖时间,我把「软中断」搞懂了
最近,某团外卖被爆出大数据杀熟。所谓的大数据杀熟指的是平台利用户的数据,分析你是否是钱多的人,或者是否是不纠结价格的人,如果是,那么你买同样的物品会比普通用户贵一点。一般这种没有特地去对比价格是很难发现的,所以平台就利用了这点额外赚一些钱。说来很可笑,我们作为平台的资深用户,竟然被平台背后偷偷捞一笔。不过,大数据杀熟早已是屡见不鲜的事情了,事实上,几乎所有大平台都存在这种现象,没办法,这就是真实的互联网。刹车,大数据杀熟的话题就说到这了,我们还是回归到今日的技术主题:什么是软中断?。中断是什么?先来看看什么
2022-07-05 09:50:29 79
原创 Springboot整合Redis
1.springboot 2整合redis参考:1.0 Spring boot整合Redis实现发布订阅(超详细)_BBQ__XB的博客-CSDN博客_springboot 发布订阅1.1 连不上redis,改redis配置Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: 解决办法_浪里小菜鸟的博客-CSDN博客1.2 Redis工具类 参考redis知识整理_安迪爸爸的博客-C
2022-07-01 16:37:40 401
转载 (转)centos 设置永久dns
最近在折腾一个问题。由于服务器的带宽是联通5M, 不稳定。而且所处的网络的dns解析貌似老出问题,每隔一定周期解析时间特别长。于是乎,想在本地做一个dns,这样可以减少dns解析时间,并做些静态配置,这样可以避免dns服务器拖后腿(不可控因素)。直接修改本地的dns配置(/etc/resolv.conf),发现一旦重启network service,这个文件就被重置了!但好处是改这个文件能立即生效。不用重启network service也可即生效!谷歌了下,找到解决方案:http://ask.xmodulo
2022-06-22 09:42:18 548
原创 Spingboot的字段校验
参考:@Valid 和 @Validated 注解用法详解_zyqok的博客-CSDN博客_@valid @validated@Valid注解是javax包下的注解,需配合BindingResult类。用@Validated更方便,只需添加全局异常处理类,处理校验失败情况。springboot版本:2.3.10.RELEASEmaven:全局异常处理............
2022-06-17 17:17:15 580
转载 (转)SpringBoot过滤器N种注册方式
通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中的那一套东西直接拿到 Spring Boot 上用。具体做法就是通过 @WebFilter 注解来标记一个 Filter,如下:在 @WebFilter 注解中可以配置过滤器的拦截规则。这个注解要生效,还需要我们在项目启动类上配置 @ServletComponentScan 注解,如下:@ServletComponentScan 注解虽然名字带了 Servlet,但是实际上它不仅仅可以扫描项目
2022-06-16 14:48:13 922
原创 2022年5月记录(JPA中数据库字段名为name时查询可能异常。Wireshark)
1.其实,这个是java异常设计缺陷,没能像C++一样处理。业务中碰到过finally块中抛出异常,导致原本呈现在日志中的try中的异常堆栈丢失。Java陷阱之:finally块抛出异常或retur异常丢失 - 脉脉
2022-05-06 17:17:08 720
原创 开发常用sql句式记录
1.按属性统计,并且将不存在的属性统计为0左连接+count函数。因为count函数不统计null。所以要count(右表属性)postgre示例: select count(e.id) as cnt,d.name as type from district d LEFT JOIN examination_application e ON ST_Intersects(d.position,e.dig_position) <where>
2022-04-01 11:04:33 313
原创 记录一次未知错误:mybatis-plus的ServiceImpl实现类在某些条件下出现循环引用问题
触发条件:1.在BaseService(ServiceImpl实现类)同级目录下中添加子包并添加一些实现类2.添加shiro注解支持的配置此时BaseService同级目录下的类,被识别为算是被Spring认为是包装过的类关于Springboot+MybatisPlus架构循环依赖问题研究 - 法号钦尘的个人空间 - OSCHINA - 中文开源技术交流社区如出现循环引用会报错:but has eventually been wrapped.Caused by: org.sp.
2022-02-22 16:11:18 874
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人