java
文章平均质量分 59
JAVA_日月
没有废话、没有套路,全部纯技术干货文章。
展开
-
LocalDateTime 时区转换,转指定时区
需求服务器在国外,数据传到国内,LocalDateTime获取到的时间是国外时间,需要转换成国内时间,又或者服务器在国内,数据传到国外,需要转换成国外的时间。直接上代码/** * 获取指定时区的时间 * @author Riyue-陈奇 * @Date 2021-04-29 21:39 * @param localDateTime * @param zoneIdEnum * @return java.time.LocalDateTime **/public static LocalDa原创 2021-04-29 21:55:48 · 13487 阅读 · 0 评论 -
Spring catch捕获了异常,全局事务依然回滚 @Transactional 踩坑记
问题描述serviceA 和 serviceB 均有数据库插入和修改操作且都添加了 @Transactional注解Controller层调用serviceA,serviceA调用serviceB, ServiceB内执行时抛出数据库sql异常, 并且该异常已被serviceB try catch, 所以程序依然能正常执行完成,但是最终程序正常执行完所有代码后,全局事务依然会回滚!(serviceA和serviceB都会回滚)代码示例@Servicepublic class ServiceAImp原创 2021-04-16 22:18:38 · 6209 阅读 · 4 评论 -
spring-cloud-starter-oauth2 token自动续签
需求:希望用户的token失效不是由登录后开始计时,而是在用户超时未请求后失效(不使用refresh_token模式),也就是要在用户每次请求后去重置token的有效期。实现方案:网关gateway实现ResourceServerConfiguration.javaimport org.springframework.beans.factory.annotation.Autowired;import org.springframework.cloud.context.config.annotati原创 2020-11-28 17:35:15 · 1645 阅读 · 1 评论 -
JAVA 8 获取系统默认时区
java8获取当前时间LocalDateTime.now()java8获取时间戳// 时区写死LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));获取系统默认时区OffsetDateTime.now().getOffset()读取系统时区获取时间戳// 获取默认时区ZoneOffset zoneOffset = OffsetDateTime.now().getOffset();// 时间戳long time = Local原创 2020-10-24 15:56:40 · 2702 阅读 · 0 评论 -
java 实现 PDF 转 TIF【黑白版】
先看效果原pdf文件11页 473kb转换后变成11个tif文件 共503kb实现代码maven依赖<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>1.8.9</version> <scope>compile</scope>&原创 2020-08-01 16:29:35 · 1123 阅读 · 6 评论 -
阿里云OSS批量根据文件url获取字节数组集合
定义接口byte[] readFile(String url);List<byte[]> batchReadFile(List<String> urls);依赖包import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.aliyun.oss.model.CannedAccessControlList;import com.aliyun.oss.model.DeleteObj原创 2020-07-26 13:46:49 · 1394 阅读 · 0 评论 -
异步计算FutureTask类
FutrueTask概念FutureTask一个可取消的异步计算,FutureTask 实现了Future的基本方法,提供 start cancel 操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,get方法会阻塞当计算没有完成的时候,一旦计算已经完成,那么计算就不能再次启动或是取消。一个FutureTask 可以用来包装一个 Callable 或是一个runnable对象。因为FurtureTask实现了Runnable方法,所以一个 FutureTask可以提交转载 2020-07-05 19:32:25 · 250 阅读 · 0 评论 -
数据结构算法 - 红黑树
红黑树是一棵自平衡的二叉搜索树,因此在学习红黑树之前,我们需要回顾一下之前所学的知识二叉搜索树和平衡二叉树。1、二叉搜索树二叉搜索树又叫二叉查找树或者二叉排序树,它首先是一个二叉树,而且必须满足下面的条件:1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值;2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值3)左、右子树也分别为二叉搜索树二叉搜索树示例2、平衡二叉树二叉搜索树解决了许多问题,比如可以快速的查找最大值和最小值,可以快速找到排名第几位的值,快速搜索和转载 2020-06-28 21:43:20 · 335 阅读 · 0 评论 -
OOM(Out Of Memory)详解
什么是OOMOOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明:Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector. 意思就是说,转载 2020-06-04 17:43:38 · 616 阅读 · 0 评论 -
乐观锁、悲观锁原理解析
并发控制当程序中可能出现并发的情况时,我们就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。我们常说的并发控制,一般都和数据库管理系统(DBMS)有关。在DBMS中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性和统一性以及转载 2020-05-22 08:46:00 · 635 阅读 · 0 评论 -
使用sh脚本实现自动化部署配置教程
适用项目:传统单体项目、微服务项目等先说下最终达到的效果,最终本地只需要执行一行命令,即可实现自动打包上传到服务器并自动重启,并且因为上传到服务器后会立马自动重启,所以影响到测试的时间也就分把钟了。可以极大程度的缩短服务更新时间,简化发包流程,从而提高开发效率。配置步骤:1、本地依赖安装Maven、jdk、git、PuTTYMaven 和 jdk 大家电脑上都是有的 ,git的话需要安...原创 2020-04-27 09:50:39 · 1415 阅读 · 0 评论 -
java集合对象的转换/拷贝
需求有集合对象List<A>现需要将该集合转为List<B>对象A和对象B只有部分属性相同实现代码/** * @Author chenqi * @Description List 集合类型转换 * @Date 16:51 2020/1/9 * @Param [list, clazz] * @return java.util.List<T> ...原创 2020-01-11 11:32:21 · 525 阅读 · 0 评论 -
java多维数组字符串转集合对象
需求字符串示例: "[[1.0,8.88],[2.0,8.88],[3.0,8.88]]"需要将该字符串转化为List<List<Double>>集合对象实现代码 /** * @Author chenqi * @Description 多位数组字符串 转 集合 * @Date 10:44 2020/1/9 * @Param [columnValue]...原创 2020-01-09 18:07:02 · 509 阅读 · 0 评论 -
linux(centos7.4)安装jdk
安装步骤:一、官网下载jdk安装包https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmljdk-8u201-linux-x64.tar.gz二、上传至服务器使用rz命令插件安装命令yum -y install lrzsz上传rz三、解压tar -zxvf jd...原创 2019-12-23 18:00:12 · 137 阅读 · 0 评论 -
java-List<Integer>与List<Long>相互转换
需求:现在有一个List<Integer>集合,需要把它转换成List<Long>集合。声明:不想使用循环实现方式使用com.alibaba.fastjson包下的 JSONArray类实现代码示例public static void main(String[] args) { List<Integer> listInt = new ...原创 2019-11-07 15:22:23 · 12452 阅读 · 1 评论 -
java生成指定位数字母加数字的随机数 (去除0、1、l、o)
需求通过java后台生成指定位数的随机数,字母+数字的组合,同时剔除0、1、l、o实现代码/** * @Author chenqi * @Description 生成指定位数的随机数 (字母加数字,去除0、1、l、o) * @Param [length] * @return java.lang.String **/ public static String getSt...原创 2019-10-31 10:13:12 · 1620 阅读 · 0 评论 -
Mybatis集合的嵌套Select查询
需求:现有一张权益表、一张权益规则表,权益表和权益规则表是一对多的关系,即一个权益下有多条权益规则,想在查询权益集合的时候同时查询出每个权益下的权益规则集合,即一个多对多的查询。实现:采用Mybatis集合的嵌套Select查询方式实现查询结果javaBean/** * @author chenqi * @version V1.0 * @ClassName: GetEquityL...原创 2019-10-21 10:57:41 · 2733 阅读 · 0 评论 -
java根据身份层级自定义排序规则
需求:根据身份的上下层级关系进行排序:1、没有上级的排在前。2、有上级的,按升序排列,即下级在前,上级在后。实现:建一个简单的身份类/** * @author chenqi * @version V1.0 * @ClassName: identity * @Description: 身份类 * @Date 2019/10/18 15:02 */@Datapublic c...原创 2019-10-18 15:42:41 · 789 阅读 · 0 评论