自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xyw10000

学海无涯

  • 博客(239)
  • 资源 (15)
  • 收藏
  • 关注

原创 allatori-JAVA代码混淆工具

Allatori不仅仅是混淆,它还能最大限度地减少应用程序的大小,提高速度,同时除了你和你的团队,任何人都无法读懂你的代码。Allatori和所有现代的Java混淆器一样,具有完整的水印功能,可以为您的软件提供适当的许可!虽然大多数第二代混淆器都能提供值得信赖的保护,但我们在Allatori中开发了一些额外的功能,使代码的反向工程几乎不可能。如果你有必要保护你的软件,如果你想减少它的大小和处理时间,Allatori混淆器是为你准备的。

2023-07-05 17:50:43 891

原创 使用spring BeanPostProcessor处理实例化对象

编写了一个类DesensitizeValueFilter基于fastjson数据脱敏处理过滤器,因为项目统一配置了HttpMessageConverters。不想强行改动加入我的配置,打算基于ConditionalOnProperty条件注解开启配置,对FastJsonHttpMessageConverter做初始化后处理。

2023-06-09 15:29:25 187

原创 spring configuration 配置 aop

【代码】spring configuration 配置 aop。

2023-06-09 15:08:09 195

原创 mybatis数据加密脱敏

在研发过程中某些业务场景是不允许存储明文的,例银行卡 身份证类。怎么实现自动加密解密呢?可以利用mybatis Interceptor 做处理,输入明文参数通过拦截器自动加密。查询出结果集自动解密。在web层展示可以对敏感字段加*处理。至此mybatis层加密解密搞定,web层代码如下。本系统使用fastjson为序列化框架。

2023-05-18 14:34:47 929 1

原创 fastJson 序列化忽略指定字段

【代码】fastJson 序列化忽略指定字段。

2022-09-26 17:50:09 5677

原创 java生成mock数据

前言在开发过程中,自测过程中。通常都是把参数固定了,做单元测试生成数据都是一样的,缺乏真实性。希望能尽量生成一些真实数据,查阅了点资料发现还是有些不错的框架。jmockdatajava-fakermockJs(一个前端js框架,java也可以调用js)一起来玩玩,用起来吧!!!1 jmockdata源码地址:GitHub - jsonzou/jmockdata: The plugin to mock the java data by random.贴上github上一段描述

2022-01-21 11:24:13 6663 5

原创 mysql 表结构差异对比小工具

项目场景:在进行慢sql评审时,发现测试环境增加了索引生产并没有。然后有些表字段长度也不一样,坑大发了。决定写一个小工具对比一下测试跟生产表结构差异,大致思路连接数据库获取建表语句进行对比,忽略主键自增id。因为测试跟生产主键id自增会有不同,如果建表语句不一致,则需要比对文本高亮显示。在网上copy了一个别人写的高亮算法,生成了一个html预览。直接上代码package com.xuyw.test.export;import com.alibaba.druid.pool.DruidDat

2022-01-20 10:07:06 2382

原创 spring boot email 切换outlook邮箱

项目原先邮件发送采用spring mail ,一直用的是腾讯企业邮箱。最近需要切换outlook,原本以为只需简单改下账户密码及host即可。切换之后发现发送失败,经过一番查找终于发送成功。记录一下问题。原先邮件发送配置如下spring.mail.username=xxxxxxxxxspring.mail.password=xxxxxxxxxspring.mail.host=smtp.exspring.mail.qq.comspring.mail.port=465spring.ma..

2022-01-19 16:40:52 1157 1

原创 mysql 四大事务隔离级别及实现方式

今天聊聊老生长谈的mysql事务隔离级别,相信大家应该听到这个名词不会陌生。我们都知道事务具有ACID特性(原子性,一致性,持久性,隔离性),今天聊的主题肯定是跟隔离性有关的,以下都基于mysql innodb引擎名词概念说明脏读 读取到其他事务还没有提交的数据 例:事务A在执行过程中,事务B插入or修改一条数据此刻尚未提交。A此刻查询出了B插入的记录,若B事务回滚。则A查询出了不正确的记录,这就是脏读现象 不可重复读 同一事务内查询,由于别的事务将数据修改or删除...

2021-12-12 17:59:26 1068

原创 redssion 延迟队列源码分析

redssion 是个优秀的开源框架,里面实现了很多常用的redis操作。例 分布式锁及分布式延时队列,api使用操作简单,功能十分强大。如果想进一步了解可访问https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 本次主要研究分析延迟队列的实现,废话不多说先上个简单的demo。package com.xuyw.redisson;import lombok.extern.slf4j.Sl...

2021-11-14 11:21:35 2128 1

原创 频繁full gc 定位

问题描述: 今天有个朋友问生产频繁发生full gc,如果不执行dump内存快照怎么定位?回想起来前段时间生产有个项目频繁执行full gc 最终oom,最终发现是有个新同事进行代码重构时sql写错了。原先sql 查询记录 id in (xx,xx) 他写成 not in (xxx) 导致大量结果集分析: 常规套路都会dump内存快照分析。这种不允许定位方式周期较长,且生产一般不允许直接dump。其实我们可以换种思路,是不是可以使用排除法定位?哪些场景会产生full g...

2021-11-07 22:24:25 169

原创 elasticsearch 开发笔记

前言最近接触elasticsearch 使用聚合功能遇到了些问题,今天总结记录一下记个笔记。需求大致是这样的要根据合作方及调用的接口分组展示出api调用图表折线图,可以根据年份月份天小时展示不同维度。由于之前调用记录已经存入es了,所以想从es统计出来。于是有了下面的辛酸历程,日志大概记录了以下信息问题1 如何根据多个字段分组统计,经过查询资料发现,可以使用script方式拼接出一个字段{ "size":0, "query":{ "bool":{ ..

2021-10-27 10:48:45 569

原创 rabbitmq 延时队列踩坑记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言 开发项目中,我们可能存在这个场景。比如订单创建30分钟未支付自动超时取消,也可能存在调用第三方接口不是实时响应结果,需要间隔一些时间获取处理状态。往往解决这些场景的技术手段无外乎于两种,1 定时任务调度 2 延时队列。鉴于定时任务实时性不好控制,往往使用延时队列来实现处理。 JDK ...

2021-10-26 14:51:04 2607

原创 canal docker 环境搭建

canal 是什么?官网https://github.com/alibaba/canal/canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。基于日志增量订阅和消费的业务包括...

2021-06-21 20:04:05 316

原创 excel 函数使用

前言作为一个后台开发,修复数据这种活是少不了的。有时候给一份excel文件,比较简单就可以使用函数来生成相应的修复sql。也能方便辅助我们排查问题一、VLOOKUP查找某列种的数据在另一列是否存在,结合IFERROR 函数更加直观VLOOKUP(lookup_value, table_array,col_index_num, [range_lookup])解释:lookup_value: 指的是要查询的某个值。如A2table_array: 指的是要查询的列。如H...

2021-06-08 14:39:36 214

原创 redis redisObject初识

redis 基于简单动态字符串、双端链表、字典、压缩列表、整数集合、跳跃表等数据结构提供了多种数据类型(string、list、hash、set、zset),不同的数据类型都有不同的适用命令。例LPUSH 和 LLEN只能用于列表类型的键,DEL、 TTL 和 TYPE, 可以用于任何类型的键, 要正确执行这些命令就需要根据当前类型执行不同的处理方式,删除String 类型 跟删除 list过程就不同。另外当列表类型元素的大小及个数的变更,redis对其进行优化也会使得对象的类型及编码格式发生变化

2021-05-26 15:53:43 128

原创 IDEA中设置Run Dashboard

微服务启动有很多工程Dashboard 界面如下开启 Run Dashboard 步骤(View->Tool Windows->Run Dashboard)若是没有Run Dashboard ,则在工程目录下找.idea文件夹下的workspace.xml<component name="masterDetails"> <states> <state key="ArtifactsStructureConfigurable.U..

2021-04-19 17:56:40 170

原创 spring mvc fastjson 自定义时间序列化无效

fastjon 默认序列化时间是时间戳,之前与spring mvc 集成 。一直运行的好好的,今天发现忽然不行了。不知道是不是被替换过版本原先配置如下 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); fas

2021-04-07 18:00:35 440 1

原创 java 递归构造父子菜单

[ { "children":Array[2], "id":1, "name":"广东", "pid":0 }, { "children":[ { "children":[ { "children":Array[0], .

2020-11-24 09:17:47 894 1

原创 mysql 排名

接到一个数据排名需求,查阅资料mysql 8.0 自带排名函数 RANK ,DENSE_RANK ,ROW_NUMBER。令人遗憾的是我们数据库使用的是5.7,只能自己实现排序功能了。废话不多说,直接撸起来。简易数据如下表id order_no user_id create_time 2 18042810310873554715933 1001 2018-04-28 10:31:20 4 18042811031407055348562 1002

2020-11-13 14:15:23 153

原创 apache HttpClient 忽略证书

TrustStrategy acceptingTrustStrategy = new TrustSelfSignedStrategy(); SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy) .build(); SSLConnectionSocke.

2020-11-10 11:18:25 628

原创 mysql GROUP_CONCAT 排序问题

使用GROUP_CONCAT发现本地执行的结果跟测试环境不同,查询资料原来GROUP_CONCAT也可以进行排序。语法 GROUP_CONCAT( id ORDER BY id asc)

2020-09-22 10:50:55 872

原创 spring boot mongodb 笔记

本例基于spring-data-mongodb 1.10.4 版本@Repositorypublic interface AttachmentDao extends MongoRepository<Attachment, String> { List<Attachment> findByTypeAndName(String type, String name);}PageRequest总结下遇到的问题,1 PageRequest 分页p..

2020-08-04 10:06:23 379

原创 zip4j带密码压缩文件

public class ZipUtils { private ZipUtils() { } public static ZipFile zip(List<File> fileList, String zipPath, String pwd) { try { ZipParameters para = new ZipParameters(); //设置压缩方式,默认是COMP_DEFLATE .

2020-06-08 18:09:16 576

原创 Cron 获取下一次执行时间

@Slf4jpublic class CronUtil { private CronUtil() { } public static CronTrigger getCronTrigger(String cron) { if (!CronExpression.isValidExpression(cron)) { throw new...

2020-04-30 13:22:31 1957

原创 spring boot websocket 集群环境处理

开发中迎来一个功能重构,需要在后台系统给指定用户发送whatsApp消息。验证用户关系,用户回复后进行其他提问。原先开发这个功能负责人是基于轮询实现,看着频繁刷mongodb的日志心里不爽,决定尝试使用websocket 进行推送。 通常实现websocket 方式有几种原生注解,spring 封装,及netty实现。具体实现可以参考下此文https://www...

2020-04-21 11:10:49 1060

原创 Spring Controller获取ResponseBody 对象

心血来潮想全局打印一下Controller请求入参,及返回。原本以为可以通过HandlerInterceptorAdapter 拦截器获取,但是postHandle 不能获取返回类型是JSON的,ModelAndView 这种倒是可以获取。 public void postHandle(HttpServletRequest request, HttpServletResponse res...

2020-03-24 16:58:24 1436

原创 自定义注解拦截器对整个Controller拦截

通过自定义注解拦截,一般注解都在方法上标注。有时候,整个Controller都需要拦截,一个个加觉得怪麻烦的。那么我们生命注解时可以让注解作用在类上。@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interfa...

2020-03-20 11:20:32 1377

原创 java spring HandlerMethodArgumentResolver 自定义接收各种类型参数

spring 自带@requestParam @requestBody注解可以很方便将参数填充到相应的实体类,但是应用场景不同。其实本质还是由于不同的Content-type ,传输方式不同。json 就是body传参平常请求contentType 一般为"application/x-www-form-urlencoded"提交json类型一般都需要设置 application/json...

2020-03-20 10:56:28 461

原创 logback 日志交易ID设置

撸过后端都知道,日志很宝贵。定位问题离开不了,所以搜索日志在所难免。有时候需要搜索一个请求下的,所有日志。这搜索起来就比较吃力了。有没有啥好的方式呢?答案是有的,logback MDC可以设置一个交易Id。打印的时候就能输出,到时候搜索这个id就可以。参考了一些资料https://www.liangzl.com/get-article-detail-596.htmlht...

2020-03-13 15:05:58 707

原创 dubbo 接口调用部分字段丢失问题

今天偶然发现,通过dubbo接口调用发现某个字段是空的。第一反应是不是没有设置值,查看服务端代码,是设置值了的。这就奇了怪了。怀疑人生啊,我反复去看返回实体类,发现那个类继承了另外一个类。而且那个为空的字段,在父类也定义了。猜想是不是这个原因导致的,移除子类的该字段,正常了。我擦 ,这是什么鬼,只能去查资料了。 dubbo默认使用的序列化方式是hession-- 序列化...

2020-02-19 16:55:24 2352 1

原创 校验时间格式

public boolean isValidDate(String str,String pattern) { try { if(str.length()!=pattern.length()){ return false; } SimpleDateFormat format ...

2019-12-30 14:07:54 333

原创 fastjson 首字母大写问题

新建fastjson.properties 放入resources目录,fastjson.propertiesfastjson.compatibleWithFieldName=truefastjson.compatibleWithJavaBean=true

2019-12-18 10:34:30 649

原创 httpClient https 忽略证书

SSLContextBuilder builder = new SSLContextBuilder(); builder.loadTrustMaterial(null, (X509Certificate[] x509Certificates, String s) -> true); SSLConnectionSocketFactory soc...

2019-11-18 10:35:23 1852

原创 RestTemplat post 查询参数设置异常

收到一个api文档接口,调用起来跟常规有些不同。需要再url上传参,还要在body传参。真是第一次见识到,参数都是json格式,也不知道这样设计的初衷是啥?接到了就干呗。 直接在url上拼接参数,https://xx?object=[{"createdBy":"one","createdDate":"2019-11-14 14:17:37","price":"88...

2019-11-14 16:40:02 409

原创 notepad++ 使用笔记

批量增加字符按住shift+alt 选中需要处理部分,光标闪动,即可编辑

2019-10-30 16:25:22 707

原创 org.springframework.amqp.AmqpException: No method found for class java.lang.String

今天被告知测试环境,硬盘不够了。发现一个项目一直在打印日志,我勒个去,一看日志原来是rabbitMq一直在循环打印日志。怪事年年有,今年特别多。以前都是好好的,今天就见了鬼。出来问题只能找资料了。 集成方式用的spring-boot-starter-amqp ,没做其他定制化额外配置,百度了一圈发现别人也遇到过。见https://www.bbsmax.com/A/KE5Qy...

2019-10-28 18:58:56 3225

原创 前后端分离验证码那些事

今天,测试大兄弟发来消息说线上一直提示验证码错误,测试环境没有这情况。收到问题自然要去排查了,由于代码不是我撸的,只能去看代码怎么实现的了。通过查看代码大致实现就是把验证码的值保存到session中,然后输出一个图片流。按照之前jsp之类的套路好像确实也没啥问题。但是我们做了前后端分离,后台也许也会部署多台机器,如果没有做session共享这就凉凉了吧。当然通过spring-sessi...

2019-10-03 22:29:07 975

原创 fastjson 反序列化顺序问题

今天做接口签名发现,签名一直不通过。大致参数格式如下{"appId":"101","timestamp":1568255975,"v":1.0,"signature":"7603A247F657BED0B3117E174A936A99","body":{"mobile":"23333","nik":"xxx"}}我的签名规则是参数字典排序,结果发现java跟js签名出来的结果不...

2019-09-12 10:45:35 1200

原创 Pyhton mongodb 抽样对比

#!/usr/bin/env python# -*- coding:utf-8 -*-import sysimport pymongo# 全局参数config = {}# 错误输出errLogFile = Nonedef tips(): print( '|-----------------------------------------------...

2019-08-30 13:43:45 321

elasticsearch-head.zip

elasticsearch 插件客户端

2021-10-26

zkUi Zookeeper

zkUi Zookeeper

2017-06-26

mongodb-win32-i386-2.0.6

mongodb-win32-i386-2.0.6 32位数据库

2015-04-02

微信大转盘demo

大转盘抽奖 订制你自己的转盘 可以自定义概率哦

2014-08-22

html css 仿微信底部自定义菜单

html css 仿微信底部自定义菜单 让微信开发页面体验更佳美好

2014-07-27

mysql 存储过程 function 调试工具

mysql 存储过程 function 调试工具 可以随时调试

2014-03-18

gson-2.2.4

java json 对象互相转换谷歌jar

2014-03-15

基于masonry 瀑布流 demo

实现完美瀑布流效果 编写少量代码 masonry 瀑布流

2014-03-08

W3CSchool.chm

包含html xml javascript jquery 等多门前端知识

2013-08-22

FusionChart 完美破解 吴水印

FusionChart 完美破解 吴水印 基于js报表 跨浏览器 跨语言 包涵多种图表

2013-08-19

gson-1.4.jar

快速的讲java 对象转换json 进 行数 据 交互

2012-05-11

jQuery 代码提示

便于快速的使用jQuery,快速上手,提高开发效率 代码自动提示功能

2012-04-28

JQuery UI 1.8.chm

jQuery ui 便于快速的上手开发jquery图形界面,包括了常用的方法 属性 使得初学者更容易上手

2012-04-28

DWR架包 dwr框架必备

dwr 驱动包 dwr框架必备 可以调用java代码的方法动态生成脚本

2012-01-03

java C# 无刷新 技术 ajax教程

神奇的AJAX java C# 无刷新 技术 ajax教程 可以自动搜索

2011-10-23

空空如也

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

TA关注的人

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