1

MiniDao1.7.1 版本发布,轻量级Java持久化框架

项目介绍MiniDao 是一款轻量级JAVA持久层框架,基于 SpringJdbc + Freemarker 实现,具备Mybatis一样的SQL分离和逻辑标签能力。Minidao产生的初衷是为了解决Hibernate项目,在复杂SQL具备Mybatis一样的灵活能力,同时支持事务同步。当前版本:v1.7.1 | 2021-03-29源码下载https://github.com/zhangdaiscott/MiniDaohttps://gitee.com/jeecg/minidao升级日志升级spring版本到5.2.10.RELEASE升级freemarker版本到2.3.30提供代码生成器...

阅读全文>>

2

ConcurrentSkipListMap原理

跳表为了引出 ConcurrentSkipListMap,先带着大家简单理解一下跳表。对于一个单链表,即使链表是有序的,如果我们想要在其中查找某个数据,也只能从头到尾遍历链表,这样效率自然就会很低。跳表就不一样了。跳表是一种可以用来快速查找的数据结构,有点类似于平衡树。它们都可以对元素进行快速的查找。但一个重要的区别是:对平衡树的插入和删除往往很可能导致平衡树进行一次全局的调整。而对跳表的插入和删除只需要对整个数据结构的局部进行操作即可。这样带来的好处是:在高并发的情况下,你会需要一个全局锁来保证整个平衡树的线程安全。而对于跳表,你只需要部分锁即可。这样,在高并发环境下,你就可以拥有更好的性能...

阅读全文>>

1

ruoyi前后端分离框架增加只通过用户名认证获取token

背景:最近选型使用ruoyi的前后端分离框架进行研发,除了管理系统部分还有小程序部分功能,需要提供api给小程序部分,而小程序使用openid关联用户名,这样希望提供只根据用户名能够获取token进行后续后台服务接口的访问需求,具体改造如下:增加5个关键类和一个测试类 修改一个config类,具体如下:拦截特殊验证的拦截器类package com.ruoyi.framework.config.q; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Http...

阅读全文>>

0

深入理解Java文件读写的底层实现

继 《Java文件的简单读写、随机读写、NIO读写与使用MappedByteBuffer读写》,本篇通过调用Linux OS文件操作系统函数实现copy命令以加深我们对Java文件读写底层实现的理解。本篇内容包括:文件操作系统函数实战:实现文件拷贝命令实战:使用mmap实现文件拷贝命令文件操作系统函数本篇将介绍的函数有:open、close、write、lseek、read、mmap、msync。使用Linux下系统调用函数来进行对文件的操作需要导入头文件<fcntl.h>、<unistd.h>,安装gcc后这两个头文件位置在/usr/include/目录下。mmap例...

阅读全文>>

0

HBase常用Api操作

一、 环境准备新建项目后在pom.xml中添加依赖:<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</...

阅读全文>>

0

集群分布式下日志架构的搭建

问题1.生产环境中项目节点过多,如何集中管理日志?2.多节点项目中,出现问题如何定位到某个具体节点出现问题?进而迅速获取该节点日志?3.EFK是如何收集管理日志的?演示。4.搭建过程日志基础架构解决效果非容器日志查看效果容器日志查看效果思路首先确定那种日志,容器或者非容器针对于非容器日志,直接采用filebeat采集固定目录日志即可,只不过在采集参数上可以有所调整,可以直接将业务日志改成JSON,也可以不改,但是要注意的是日志采集的时候异常日志的采集方式,filebeat默认是单行,但是单行的对于出现一堆异常的日志来说,查看不是很方便明确,因此注意采取多行采集配置,如上图演示效果中的日志.日志...

阅读全文>>

0

java为我们已经提供了各种锁,为什么还需要分布式锁?

目前的项目单体结构的基本上已经没有了,大多是分布式集群或者是微服务这些。既然是多台服务器。就免不了资源的共享问题。既然是资源共享就免不了并发的问题。针对这些问题,redis也给出了一个很好的解决方案,那就是分布式锁。这篇文章主要是针对为什么需要使用分布式锁这个话题来展开讨论的。不喜勿喷。前一段时间在群里有个兄弟问,既然分布式锁能解决大部分生产问题,那么java为我们提供的那些锁有什么用呢?直接使用分布式锁不就结了嘛。针对这个问题我想了很多,一开始是在网上找找看看有没有类似的回答。后来想了想。想要解决这个问题,还需要从本质上来分析。OK,开始上车出发。一、前言既然是分布式锁,这就说明服务器不是一...

阅读全文>>

0

分布式锁设计方案

分布式锁设计方案一.需求背景1.背景系统背景解决方案单机系统单体单机部署的系统,需要对某一个共享变量进行多线程同步访问的时候,所有的请求都会分配到当前服务器的jvm内部,然后映射为操作系统的线程进行处理。而这个共享变量只是在这个jvm内部的一块内存空间。使用java并发处理的相关API进行互斥控制(如ReentrantLock或Synchronized)分布式系统由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的java API并不能提供分布式锁的能力。这就是分布式锁需要解决的问题。使用分布式锁2.分布式锁具备的条件原子性:同一时刻,只能有一个...

阅读全文>>

0

DocFetcher - 开源的文件内容搜索工具

DocFetcher 是一款 开源 的 文件内容 搜索工具,它除了允许你 搜索电脑 上的 文件名称 查找文件以外,还支持通过 文件内容 进行查找 所需文件。除了 .txt 格式以外,还支持 .xlsx 等 常见格式,该软件支持在 Windows、macOS、Linux 操作系统上 运行使用,建议有 使用需求 的用户 安装使用。DocFetcher 依赖 JRE 环境,安装软件 时虽然可以 联网下载 并 进行安装,但实测下载 速度过慢 且时常出现 下载错误 无法安装等问题。先访问 分享网盘 中下载 离线安装包 后 双击运行 并依次点击 安装 - 关闭 按钮即可 完成安装。http://javad...

阅读全文>>

0

Java实现PDF首页转缩略图

一、maven安装<dependency> <groupId>org.icepdf.os</groupId> <artifactId>icepdf-core</artifactId> <version>6.2.2</version> </dependency>二、Java代码实现import org.icepdf.core.pobjects.Document; import org.icepdf.core.pobjects.Page; import org.icepdf.co...

阅读全文>>