随笔分类 -  java

摘要:CountDownLatch和CyclicBarrier的功能看起来很相似,不易区分,有一种谜之的神秘。本文将通过通俗的例子并结合代码讲解两者的使用方法和区别。 CountDownLatch和CyclicBarrier都是java.util.concurrent包下面的多线程工具类。 从字面上理解, 阅读全文
posted @ 2019-08-30 10:39 宇宙间的星河集 阅读(394) 评论(0) 推荐(0)
摘要:理论知识   redis分布式锁的实现方案请参考文章 "如何优雅地用redis实现分布式锁" 本案例简介   以秒杀活动为例子,在多线程高并发的情况下需要保证秒杀业务的线程安全性,确保秒杀记录与所扣库存数量想匹配。 加锁与解锁核心代码 该段代码可以解决理论知识 阅读全文
posted @ 2019-05-11 14:09 宇宙间的星河集 阅读(3176) 评论(0) 推荐(0)
摘要:示例代码 在上面的代码中,我们同时使用了@transactional和redis分布式锁(其他锁同理,比如synchronized同步锁也会出现这个问题) 问题分析   上面这个例子是无法保证数据的一致性.由于spring的aop,会在update方法之前开启事务,之后再加锁,当 阅读全文
posted @ 2019-05-11 03:37 宇宙间的星河集
摘要:定义  WebSocket是通过单个TCP连接提供全双工(双向通信)通信信道的计算机通信协议。此WebSocket API可在用户的浏览器和服务器之间进行双向通信。用户可以向服务器发送消息并接收事件驱动的响应,而无需轮询服务器。 它可以让多个用户连接到同一个实时服务器,并通过API进行通信 阅读全文
posted @ 2019-05-06 17:15 宇宙间的星河集 阅读(4789) 评论(0) 推荐(0)
摘要:环境搭建 目录结构(ad-eureka为子模块) --ad-spring-cloud --ad-eureka --pom.xml --pom.xml 主pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave 阅读全文
posted @ 2019-02-11 21:12 宇宙间的星河集 阅读(2895) 评论(0) 推荐(0)
摘要:前言 java数组与集合需要互相转换的场景非常多,但是运用不好还是容易抛出UnSupportedOperationException。下面讲解一下互转的方法,以及结合源码分异常产生的原因 集合转数组 上段代码的运行结果为 为什么数组中是空值呢,明明已经通过toArray()赋值了啊,我们去看一下源码 阅读全文
posted @ 2018-12-18 20:05 宇宙间的星河集 阅读(424) 评论(0) 推荐(0)
摘要:引入依赖 邮件实体类 可用邮件服务器地址(网易为例) 邮件工具类 阅读全文
posted @ 2018-11-12 00:11 宇宙间的星河集 阅读(226) 评论(0) 推荐(0)
摘要:import lombok.extern.slf4j.Slf4j; import java.security.MessageDigest; @Slf4j public class MD5Util { public final static String encrypt(String s) { cha 阅读全文
posted @ 2018-11-11 17:38 宇宙间的星河集 阅读(587) 评论(0) 推荐(0)
摘要:spring项目在服务器启动的时候 spring容器中就已经被创建好了各种对象,在我们需要使用的时候可以进行调用. 工具类代码如下 接着就是在spring配置文件中配置该bean , 并关掉懒加载,让项目初始化的时候就给applicationContext对象赋上值 测试: 我们可以通过工具类直接拿 阅读全文
posted @ 2018-11-10 11:30 宇宙间的星河集 阅读(1561) 评论(0) 推荐(0)
摘要:在java项目中,通常会用到json类型的转换,常常需要对 json字符串和对象进行相互转换。 在制作自定义的json转换类之前,先引入以下依赖 自定义json工具类的实现: 使用: JSON串转为list类型 对象类型转为JSON串 阅读全文
posted @ 2018-11-10 11:17 宇宙间的星河集 阅读(2275) 评论(0) 推荐(0)
摘要:参数校验在项目中是必不可少的,不仅前端需要校验,为了程序的可靠性,后端也需要对参数进行有效性的校验。下面将介绍在springmvc或springboot项目中参数校验的方法 准备工作: 引入校验需要用到的依赖 首先放上我们的测试对象 方法一、全部使用注解的方式进行校验 可以看到,我们在测试对象中加上 阅读全文
posted @ 2018-11-10 08:42 宇宙间的星河集 阅读(1026) 评论(0) 推荐(0)
摘要:异常在项目中那是不可避免的,通常情况下,我们需要对全局异常进行处理,下面介绍两种比较常用的情况。 准备工作: 在捕获到异常的时候,我们通常需要返回给前端错误码,错误信息等,所以我们需要手动封装一个jsonData对象,这里为了方便,我直接通过返回布尔类型来进行判断成功或失败,在实际的项目中更多是返回 阅读全文
posted @ 2018-11-09 17:51 宇宙间的星河集 阅读(1116) 评论(0) 推荐(0)
摘要:以maven项目作为构建工具为例,首先引入使用logback需要的3个依赖,需要注意使用logback是需要引入slf4j-api的,因为logback是基于slf4j的 引入依赖之后下面,我们可以在classpath下创建logback.xml文件,并按需要进行相应的配置。 下面的配置案例中实现的 阅读全文
posted @ 2018-11-08 15:10 宇宙间的星河集 阅读(5715) 评论(0) 推荐(0)
摘要:FFmpeg是一个非常好用的视频处理工具,下面讲讲如何在java中使用该工具类。 一、首先,让我们来认识一下FFmpeg在Dos界面的常见操作 1.拷贝视频,并指定新的视频的名字以及格式 ffmpeg.exe -i old.mp4 new.avi 2.将视频和音频结合,并指定视频的长度(7秒),同时 阅读全文
posted @ 2018-06-20 22:24 宇宙间的星河集 阅读(2368) 评论(0) 推荐(0)
摘要:我们经常会遇到显示 "某个之间之前" 的需求(比如各种社交软件,在回复消息时,显示xxx之前回复),我们可以在后端进行处理,也可以在前端进行处理,这里讲讲在后端进行处理的方法. 其实很简单,我们只需要将从数据库中取到的date类型的字段进行处理。 工具类如下: 经过了该类的处理之后,得到的全是 "x 阅读全文
posted @ 2018-06-19 21:24 宇宙间的星河集 阅读(526) 评论(0) 推荐(1)
摘要:mybatis pagehelper想必大家都耳熟能详了,是java后端用于做分页查询时一款非常好用的分页插件,同时也被人们称为mybatis三剑客之一,下面 就给大家讲讲如何在SSM项目和springboot项目中使用mybatis pagehelper 一、mybatis pagehelper在 阅读全文
posted @ 2018-06-19 19:52 宇宙间的星河集 阅读(650) 评论(0) 推荐(0)
摘要:在很多时候我们都需要使用到短链接,比较常见的是在生成微信二维码的时候,长的url不能生成二维码,必须使用短链接。所以短链接的生成就尤其重要,废话不多说,下面直接介绍三种生成短链接的工具类 一、使用百度的短链接服务生成短链接 (可能不太稳定,时而能获取二维码 时而不能获取) 二、仍然是百度的短链接服务 阅读全文
posted @ 2018-04-15 17:11 宇宙间的星河集 阅读(1075) 评论(0) 推荐(0)
摘要:话不多说,直接上代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder 阅读全文
posted @ 2018-04-02 11:12 宇宙间的星河集 阅读(853) 评论(1) 推荐(0)