JAVA
文章平均质量分 57
xyw10000
这个作者很懒,什么都没留下…
展开
-
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 · 7350 阅读 · 5 评论 -
mysql 表结构差异对比小工具
项目场景:在进行慢sql评审时,发现测试环境增加了索引生产并没有。然后有些表字段长度也不一样,坑大发了。决定写一个小工具对比一下测试跟生产表结构差异,大致思路连接数据库获取建表语句进行对比,忽略主键自增id。因为测试跟生产主键id自增会有不同,如果建表语句不一致,则需要比对文本高亮显示。在网上copy了一个别人写的高亮算法,生成了一个html预览。直接上代码package com.xuyw.test.export;import com.alibaba.druid.pool.DruidDat原创 2022-01-20 10:07:06 · 2484 阅读 · 0 评论 -
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 · 2266 阅读 · 1 评论 -
elasticsearch 开发笔记
前言最近接触elasticsearch 使用聚合功能遇到了些问题,今天总结记录一下记个笔记。需求大致是这样的要根据合作方及调用的接口分组展示出api调用图表折线图,可以根据年份月份天小时展示不同维度。由于之前调用记录已经存入es了,所以想从es统计出来。于是有了下面的辛酸历程,日志大概记录了以下信息问题1 如何根据多个字段分组统计,经过查询资料发现,可以使用script方式拼接出一个字段{ "size":0, "query":{ "bool":{ ..原创 2021-10-27 10:48:45 · 594 阅读 · 0 评论 -
rabbitmq 延时队列踩坑记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言 开发项目中,我们可能存在这个场景。比如订单创建30分钟未支付自动超时取消,也可能存在调用第三方接口不是实时响应结果,需要间隔一些时间获取处理状态。往往解决这些场景的技术手段无外乎于两种,1 定时任务调度 2 延时队列。鉴于定时任务实时性不好控制,往往使用延时队列来实现处理。 JDK ...原创 2021-10-26 14:51:04 · 2898 阅读 · 0 评论 -
canal docker 环境搭建
canal 是什么?官网https://github.com/alibaba/canal/canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。基于日志增量订阅和消费的业务包括...原创 2021-06-21 20:04:05 · 355 阅读 · 0 评论 -
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 · 202 阅读 · 0 评论 -
spring mvc fastjson 自定义时间序列化无效
fastjon 默认序列化时间是时间戳,之前与spring mvc 集成 。一直运行的好好的,今天发现忽然不行了。不知道是不是被替换过版本原先配置如下 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); fas原创 2021-04-07 18:00:35 · 496 阅读 · 1 评论 -
java 递归构造父子菜单
[ { "children":Array[2], "id":1, "name":"广东", "pid":0 }, { "children":[ { "children":[ { "children":Array[0], .原创 2020-11-24 09:17:47 · 942 阅读 · 1 评论 -
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 · 746 阅读 · 0 评论 -
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 · 440 阅读 · 0 评论 -
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 · 651 阅读 · 1 评论 -
Cron 获取下一次执行时间
@Slf4jpublic class CronUtil { private CronUtil() { } public static CronTrigger getCronTrigger(String cron) { if (!CronExpression.isValidExpression(cron)) { throw new...原创 2020-04-30 13:22:31 · 2022 阅读 · 0 评论 -
spring boot websocket 集群环境处理
开发中迎来一个功能重构,需要在后台系统给指定用户发送whatsApp消息。验证用户关系,用户回复后进行其他提问。原先开发这个功能负责人是基于轮询实现,看着频繁刷mongodb的日志心里不爽,决定尝试使用websocket 进行推送。 通常实现websocket 方式有几种原生注解,spring 封装,及netty实现。具体实现可以参考下此文https://www...原创 2020-04-21 11:10:49 · 1122 阅读 · 0 评论 -
Spring Controller获取ResponseBody 对象
心血来潮想全局打印一下Controller请求入参,及返回。原本以为可以通过HandlerInterceptorAdapter 拦截器获取,但是postHandle 不能获取返回类型是JSON的,ModelAndView 这种倒是可以获取。 public void postHandle(HttpServletRequest request, HttpServletResponse res...原创 2020-03-24 16:58:24 · 1518 阅读 · 0 评论 -
自定义注解拦截器对整个Controller拦截
通过自定义注解拦截,一般注解都在方法上标注。有时候,整个Controller都需要拦截,一个个加觉得怪麻烦的。那么我们生命注解时可以让注解作用在类上。@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interfa...原创 2020-03-20 11:20:32 · 1416 阅读 · 0 评论 -
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 · 512 阅读 · 0 评论 -
logback 日志交易ID设置
撸过后端都知道,日志很宝贵。定位问题离开不了,所以搜索日志在所难免。有时候需要搜索一个请求下的,所有日志。这搜索起来就比较吃力了。有没有啥好的方式呢?答案是有的,logback MDC可以设置一个交易Id。打印的时候就能输出,到时候搜索这个id就可以。参考了一些资料https://www.liangzl.com/get-article-detail-596.htmlht...原创 2020-03-13 15:05:58 · 752 阅读 · 0 评论 -
dubbo 接口调用部分字段丢失问题
今天偶然发现,通过dubbo接口调用发现某个字段是空的。第一反应是不是没有设置值,查看服务端代码,是设置值了的。这就奇了怪了。怀疑人生啊,我反复去看返回实体类,发现那个类继承了另外一个类。而且那个为空的字段,在父类也定义了。猜想是不是这个原因导致的,移除子类的该字段,正常了。我擦 ,这是什么鬼,只能去查资料了。 dubbo默认使用的序列化方式是hession-- 序列化...原创 2020-02-19 16:55:24 · 2514 阅读 · 1 评论 -
校验时间格式
public boolean isValidDate(String str,String pattern) { try { if(str.length()!=pattern.length()){ return false; } SimpleDateFormat format ...原创 2019-12-30 14:07:54 · 366 阅读 · 0 评论 -
fastjson 首字母大写问题
新建fastjson.properties 放入resources目录,fastjson.propertiesfastjson.compatibleWithFieldName=truefastjson.compatibleWithJavaBean=true原创 2019-12-18 10:34:30 · 738 阅读 · 0 评论 -
httpClient https 忽略证书
SSLContextBuilder builder = new SSLContextBuilder(); builder.loadTrustMaterial(null, (X509Certificate[] x509Certificates, String s) -> true); SSLConnectionSocketFactory soc...原创 2019-11-18 10:35:23 · 1925 阅读 · 0 评论 -
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 · 430 阅读 · 0 评论 -
java 几种webservice
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和大家一起来研究研究webservice的各种使用方法。 一、利用jdk web服务api实现,这里使用基于 SOAP message的 Web 服务转载 2013-01-05 14:01:34 · 576 阅读 · 0 评论 -
STRUTS2 Convention零配置
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。如何使用Convention1.原创 2013-01-15 14:11:21 · 1136 阅读 · 0 评论 -
java获取当前路径的几种方法
目录(?)[-]java获取当前路径的几种方法JAVA中获取路径java获取当前路径的几种方法1、利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2、使用File提供的函数获取当前转载 2013-09-27 09:25:58 · 2080 阅读 · 0 评论 -
Ajax与JSP防止缓存
一:清除AJAX缓存的方法介绍:1.在ajax发送请求前加上xmlHttp.setRequestHeader("If-Modified-Since","0");2.在ajax发送请求前加上xmlHttp.setRequestHeader("Cache-Control","no-cache");3.在Ajax发送的URL参数后加上随机数,如:"?fresh="+Math.random()转载 2013-10-30 15:22:04 · 977 阅读 · 0 评论 -
PL/SQL 调用JAVA 代码
有的时候,我们需要在Oracle的Prodedure、Function中调用JAVA代码来实现功能,有时候程序用数据库实现难度可能比较大,那如果我们先写成JAVA代码,然后通过调用,来实现,这就简单了。本人写了简单demo 一 在pl/sql 创建java代码create or replace and compile java source named hello aspubl原创 2013-12-11 17:09:40 · 1485 阅读 · 0 评论 -
7种方法获取Properties的值
package test; import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.Propert转载 2013-11-21 10:31:14 · 2323 阅读 · 0 评论 -
apache+tomcat集群03 mod_JK
一、背景原理:tomcat 做个WEB服务器有它的局限性,处理能力低,效率低。承受并发小(1000左右)。但目前有不少网站或者页面是JSP的。并采用了tomcat做为WEB,因此只能在此基础上调优。目前采取的办法是Apache + Mod_JK + tomcat 来解决一部分请求,用户访问的是apache,但有jsp页面的时候才会去请求tomcat。如果量一大,那么tomcat无法承受,那转载 2013-12-19 12:53:56 · 1936 阅读 · 0 评论 -
jstl截取字符串
今天写一个功能时,文本输入过长导致排版乱掉.这些数据是从数据库遍历出来.于是想到在页面截取查了下jstl有个函数可以实现需求 20}"> ok 实现效果原创 2014-03-15 11:54:20 · 815 阅读 · 0 评论 -
google guava简单使用
逛论坛看到google guava ,一开始还不了解这个是干嘛的.找了点资料,了解到是个工具类,对map的操作大大增强.用起来感觉很好.编写了简单demo,简单记录使用.package guava;import java.util.Collection;import java.util.HashMap;import java.util.Map;import com.google原创 2014-04-04 10:35:40 · 1185 阅读 · 0 评论 -
struts2 ueditor 上传图片失败
今天使用这个富文本编辑器,发现上传失败.使用了struts2框架 一直报错说图片不存在找了好多资料才发现struts封装了request。所以这里要让struts过滤掉这个jsp页面的部分信息。在struts.xml加入过滤掉这些静态资源<constant name="struts.action.excludePattern" val原创 2014-03-13 17:11:56 · 835 阅读 · 0 评论 -
jstl 常用function
函数描述fn:contains(string, substring)如果参数string中包含参数substring,返回truefn:containsIgnoreCase(string, substring)如果参数string中包含参数substring(忽略大小写),返回truefn:endsWith(string, s原创 2014-03-22 15:55:44 · 635 阅读 · 0 评论 -
spring 事物不起作用
今天做写程序发现事物不起作用了 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 配置信息一直没动。后来找资料发现原原创 2014-03-22 20:31:46 · 974 阅读 · 0 评论 -
JS JAVA 判断是否微信浏览器
JS JAVA 判断微信浏览器原创 2014-04-21 15:48:17 · 15265 阅读 · 0 评论 -
微信爱帮公交查询之公交线路查询
java公交查询原创 2014-05-04 16:44:28 · 3564 阅读 · 1 评论 -
java htmlparser 简单使用入门
下面对htmlparser 简单介绍下,信息来自百度htmlparser[1]是一个纯的java写的html(标准通用标记语言下的一个应用)解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。毫不夸张地说,htmlparser就是目前最好的html解析和分析的工具。原创 2014-06-04 23:03:15 · 7135 阅读 · 1 评论 -
Gson 一些常用设置
--new GsonBuilder().disableHtmlEscaping().create();原创 2014-07-21 17:18:30 · 742 阅读 · 0 评论 -
lucene学习笔记-1
package com.xuyw;import java.io.File;import java.io.FileReader;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.do原创 2014-07-22 21:42:22 · 605 阅读 · 0 评论