java
<Michael>
这个作者很懒,什么都没留下…
展开
-
基于spring mockito 编写kafka消费者的单元测试
mockito 编写kafka消费者的单元测试原创 2023-06-25 13:56:40 · 1249 阅读 · 0 评论 -
Java Stream 生成任意时间区间中的时间列表
图表生成时间轴,生成时间序列,生成任意日期区间列表原创 2023-06-07 11:19:21 · 569 阅读 · 0 评论 -
ElasticsearchRestTemplate导致的查询超时
解决ElasticsearchRestTemplate导致的查询超时原创 2023-02-10 15:51:50 · 5512 阅读 · 0 评论 -
JDK9-JDK17新特性总结
jdk9到jdk17的新增特性总结转载 2023-02-01 11:44:56 · 2274 阅读 · 0 评论 -
keycloak15部署(Centos非docker)
部署下载地址:https://www.keycloak.org/downloads解压:tar -zxvf keycloak-15.0.1.tar.gz执行:keycloak-15.0.1/bin/standalone.sh就可以直接启动。切换为Mysql数据库keycloak默认使用自带的h2数据库,我们在这里切换为我们外部已有的Mysql5.7。下载mysql驱动jar:mysql-connector-java-8.0.13.jar并将jar包放到如下目录位置:ke原创 2021-08-11 10:14:08 · 487 阅读 · 0 评论 -
Java8 LocalDate判断日期是否在当月
测试案例:今天是2021-3-31目标日期是2021-4-30测试代码: LocalDate now = LocalDate.now(); LocalDate date = LocalDate.parse("2021-4-30", DateTimeFormatter.ofPattern("yyyy-M-d")); System.out.println(Period.between(now, date).getMonths());原创 2021-03-31 10:58:54 · 5090 阅读 · 2 评论 -
Spring循环依赖深度理解
并非所有的构造函数依赖都不可以被解决,而是必须要保证先初始化的bean可以正常的被实例化,因为先初始化的bean需要从三级缓存中升级到二级缓存,也就是说先初始化的类中不可以通过构造函数注入的方式去注入循环依赖的bean 二级缓存的作用:如果多个类同时循环依赖同一个类,那么我们需要保证获取到的实例化对象是一样的,如果没有二级缓存,都从三级缓存中去获取,那么获取到的都是一个factory,通过fatory“生产”出来的bean可能是不同的未完待续!!!...原创 2021-03-01 16:26:10 · 139 阅读 · 0 评论 -
(最新)JVM(HotSpot虚拟机)各种垃圾收集器优缺点
JVM中各种垃圾收集器优缺点 收集器名称 优点 缺点 备注 Serial/Serial Old 1、所有收集器中内存消耗最小的 2、相比于其他收集器的单个线程开说,更简单高效 1、单线程工作收集器,垃圾收集时必须暂停其他所有工作线程,且暂停时间不可控 Serial收集器对于运行在客户端模式下、微小型服务或单线程服务的虚拟机来说是一个很好的选择。 ParNew 1、是Serial的多线程并发版本原创 2020-07-05 12:28:15 · 2872 阅读 · 0 评论 -
微信支付(一)统一下单接口注意事项
开发背景WXPaySdk 3.0.9 Java注意事项使用SDK中的requestWithoutCert方法发送下单请求时传入的data是xml格式的,不是json格式。可以使用 WXPayUtil.mapToXml(jsonObject); 因为这个版本的WXPayConfig中的方法仅同包可以实现,所以我这里把它copy到工程中进行实现,在实现其getWXPayDomain方法时需要返回一个IWXPayDomain接口的实现类,注意实现getDomain方法时DomainInfo原创 2020-06-11 15:03:03 · 1208 阅读 · 0 评论 -
Activiti7 获取自定义表单信息
在Activiti7之前的版本中可以使用FormService去获取bpmn中的自定义表单信息,在Activiti7中删除了FormService,可以使用如下方法去获取: ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(processBtnDto.getDeploymentId()).singleResult(); Pr原创 2020-06-08 14:39:14 · 4466 阅读 · 2 评论 -
Activiti7 自动创建表后缺少字段的问题解决
Springboot2整合了Activiti7之后,进行发布流程的单元测试时,报了异常,说在ACT_RE_DEPLOYMENT表中缺少VERSION_字段。我们需要在ACT_RE_DEPLOYMENT表中手动增加如下两个字段:产生问题的具体原因还不知道。...原创 2020-05-26 09:52:44 · 1413 阅读 · 1 评论 -
Activiti7 无法自动创建表的问题解决
在Activiti7 的文档中我们只需要配置了database-schema-update: true,在程序启动时,就会自动的帮我们更新或者创建表结构。但是在实施过程中发现程序启动后没有帮我创建表结构(mysql5.7) activiti: history-level: full db-history-used: true database-schema-update: true解决方案:在数据库连接地址后面加上nullCatalo原创 2020-05-26 09:48:48 · 4339 阅读 · 4 评论 -
Activiti7 与shiro冲突问题解决
今天在原有的框架(Springboot_shiro)的基础上准备把Activiti7整合进去,引入如下依赖后,启动时报SecurityManager一个异常。<dependency> <groupId>org.activiti.dependencies</groupId> <artifactId>activiti-dependencies</artifactId> <version>7.1.0.M6<原创 2020-05-26 09:45:42 · 3794 阅读 · 0 评论 -
利用Apollo共通namespace管理日志配置信息无效的解决方案
在springcloud项目中使用了Apollo开统一的管理配置文件,使用了共通的namespace来统一管理日志输出级别,但是发现本地缓存中已经出现了对应的配置文件:但配置内容并没有生效。最后在官方文档中找到了答案:原因是日志系统在apollo之前启动了,所以对应的日志配置没有生效!官方大法好!!!...原创 2019-08-14 16:42:15 · 1341 阅读 · 0 评论 -
设计模式大结局
JAVA设计模式原创 2019-06-11 10:13:16 · 173 阅读 · 0 评论 -
POI导出Excel共通方法
使用poi插件封装,直接上代码:import org.apache.poi.xssf.usermodel.*;import org.springframework.beans.factory.annotation.Autowired;import javax.servlet.http.HttpServletResponse;import java.io.IOException;im...原创 2018-08-13 17:02:00 · 1515 阅读 · 0 评论 -
DDD+CQRS+EDA思想理解的文章整理
以下是博主整理的关于DDD思想比较容易理解的文章,因为博主之前也没有接触过这种思想,所以看了一些博文,有些确实看的云山雾绕的,所以为了方便像我一样的初次接触这种思想的朋友,特地整理了一下,不过真是搞的我头都大了,还好是总算是理解了一些。 如果你是第一次接触这种思想,而且英文也不好的同学,博主建议你先不要去看JDON的文章,别问我怎么知道的,哈哈。废话少说,看干活。...原创 2018-08-16 10:52:18 · 1352 阅读 · 0 评论 -
修改BootstrapTable的refresh方法,使其调用时自动跳转到首页
在使用BootstrapTable插件时,有一个问题一直困扰着我,那就是在使用refresh方法做检索时,总是跳转到当前页,而我们希望他可以跳转到首页,通常我们是这样做的。 tableObj.refresh({ url: '../customer/getAll', method: API_METHOD_POST, ...原创 2018-08-16 10:58:54 · 6519 阅读 · 2 评论 -
使用security在画面级别控制权限
我们在使用spring security做系统认证和授权时,总会遇到这样的问题,就是画面上按钮和菜单级别的权限应该怎么处理,又怎么样在画面上去获取授权用户的信息呢?当然如果你使用的是JSP那就非常简单了,只要使用提供的标签库就可以实现,这也不是我们探讨的内容,我们今天要探讨的是如果你的画面是html或者thymleaf的情况下该如何处理,先说thymleaf的情况。 ...原创 2018-08-31 13:43:27 · 950 阅读 · 0 评论 -
文件上传下载工具类(java)
import org.springframework.core.io.FileSystemResource;import org.springframework.core.io.InputStreamResource;import org.springframework.http.HttpHeaders;import org.springframework.http.MediaType;...原创 2018-09-14 11:27:07 · 3811 阅读 · 0 评论 -
BootstrapTable-treeview 设置展开层级
项目中使用BootstrapTable-treeview 实现了一个组织结构的modal,但是客户有要求希望可以在页面去控制整个树形表格的展开层级,我在treeview的基础上增加了一个openTo方法去实现整个功能。bootstraptable-treeview.js//展开指定层级 updateByNio BootstrapTable.prototype.openTo...原创 2018-09-26 11:13:57 · 9579 阅读 · 0 评论 -
bootstrap-validator校验行为不触发的解决
今天在测试的时候遇到一个诡异的问题,画面上有一个输入框,点击输入框弹出一个模态框,在模态框中选择相应的值然后赋值到输入框中,但是当第一次触发非空异常校验时,再次选择一个值填进去后,仍然显示异常校验信息并且校验不通过。后来经过和小伙伴的探讨,发现虽然我们在点击保存按钮时调用的isValid方法,但是每一个控件的校验时间并不是点击保存按钮时,而是在我们改变输入框内容的时候,所以我们又模拟...原创 2018-09-28 17:46:58 · 6579 阅读 · 4 评论 -
解决bootstrap-treeview树形结构缩进异常
项目中使用到了bootstrap-treeview,但是他的缩进存在异常,查看源码发现他的缩进有一个level属性来控制,level属性的变化由方法initData来控制。修改如下: var g = function (child) { var childLevel = 0; childLevel = th...原创 2018-10-10 16:54:13 · 2007 阅读 · 0 评论 -
spring-security实现多端登陆时,踢掉前一个用户
实现思路是依赖于spring-security中的sessionRegistry和SessionInformation两个对象来判断和删除session。UsernamePasswordAuthenticationFilter 实现类的attemptAuthentication方法中实现主要判断和删除session的逻辑: //获取所有在线用户 List...原创 2019-03-01 11:00:50 · 9525 阅读 · 3 评论 -
springbootadmin+eureka实现服务监控
最近线上项目上的比较多,而之前并没有使用微服务的架构,所以监控就是一个大问题,经常需要登陆服务器进行操作,突然想到使用springbootadmin去做一个简易的服务监控,期间也走了很多弯路 ,这里做一下记录。首先架构分析:1、spring-boot-eureka:注册中心,被监控的服务以及admin-server都需要注册到eureka2、spring-boot-admin-serv...原创 2019-04-02 16:59:23 · 4773 阅读 · 5 评论 -
volatile踩坑实例
首先,本文并不是在详细的讲解volatile关键字,如果对于相关概念不熟悉的朋友还请调查相关资料。volatile的作用线程共享 但是无法保证操作的原子性至于volatile关键字的相关概念,本人也看过很多资料,但是对于其实际的效果并没有写过例子去验证,突然有时间就想着写一个例子看看,可是发现完全达不到预想的“共享”的效果(包括网上的许多例子也尝试了),于是产生对于这个关键字的左右也产...原创 2019-05-20 13:29:54 · 634 阅读 · 0 评论 -
volatile与System.out不得不说的爱恨纠葛之第三者synchronized
既然你点进来了,那就证明你知道volatile的作用是线程共享。那么请见下面例子:public class Warehouse extends Thread{ boolean flag = true; @Override public void run() { while (true) { if (!flag) { ...原创 2019-05-20 17:03:14 · 418 阅读 · 0 评论 -
为datetimepicker插件加上清空按钮
为datetimepicker插件加上清空按钮最终效果如图: 好吧,其实就是将今日按钮修改为清空,哈哈哈!!!具体修改代码如下:bootstrap-datetimepicker.jscase 'today': //修改今天行为为清空输入框 by wangminghao ...原创 2018-08-02 17:47:06 · 8038 阅读 · 1 评论