Java
doinbb
分布式微服务|业务中台|数据中台
展开
-
在线代码生成器Fat Girl
在线代码生成器Fat Girl原创 2022-10-20 14:55:44 · 1670 阅读 · 0 评论 -
BigDecimal 加减乘除工具类
BigDecimal 加减乘除运算工具类原创 2022-02-07 11:10:53 · 644 阅读 · 1 评论 -
FeignClient重试机制造成的接口幂等性
Feign源码分析,其实现类在SynchronousMethodHandler,实现方法是public Object invoke(Object[] argv) ,它的代码分析如下:1.构造请求数据,将对象转换为json:RequestTemplate template = buildTemplateFromArgs.create(argv);2.发送请求进行执行(执行成功会解码响应数据):executeAndDecode(template, options);3. 执行请求会有重.原创 2020-10-02 11:45:26 · 1664 阅读 · 0 评论 -
如何实现接口幂等性
一.什么是幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致性的,不会因为多次点击而产生了副作用,比如支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。二. 那些情况需要防止出现幂等性1、用户多次点击提交按钮2、用户页面回退再次提交3、微服务互相调用,由于网络抖动,导致请求失败,feign触发重试机制等。原创 2020-09-06 23:28:41 · 2934 阅读 · 0 评论 -
Ubuntu18.04.3安装JDK和环境变量配置
前言:查阅了大量的资料,发现在Ununtu操作系统中能够正确安装JDK并且,配置好环境变量的可靠信息非常少。这里我把自己亲手配置成功后的操作,分享给大家。查看虚拟机配置:lsb_release -a1. 获取JDK安装包官网地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloa...原创 2019-12-13 15:15:47 · 538 阅读 · 0 评论 -
synchronize底层实现原理
synchronize底层原理是什么?我们先通过反编译下面的代码来看看Synchronized是如何实现对代码块进行同步的:public class SynchronizedDemo { public void method() { synchronized (this) { System.out.println("Method 1 start"); }}反编译...原创 2020-04-10 10:56:32 · 977 阅读 · 0 评论 -
使用JPA时new Date()时间插入数据库时间差8个小时解决方法
使用JPA时new Date()时间插入数据库时间差8个小时解决方法一. Docker部署环境时分别检查docker内部镜像时区,如果时区不正确,推荐将docker镜像的时区和系统时区绑定。version: "3"services: deploy: build: doc container_name: doc_server network_mode: "...原创 2020-03-27 14:48:03 · 2087 阅读 · 0 评论 -
Spring-Security自定义登陆错误提示信息
实现效果如图所示:首先公布实现代码:一. 自定义实现 import.org.springframework.security.core.userdetails.UserDetailsService类。并且抛出BadCredentialsException异常,否则页面无法获取到错误信息。@Slf4j@Servicepublic class MyUserDetailsS...原创 2019-08-07 11:36:56 · 13386 阅读 · 11 评论 -
Java实现excel导出功能
1.引用jxls依赖, 排除不需要的依赖。 <dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-core</artifactId> <version>1.0.6</versi...原创 2019-05-06 17:53:18 · 293 阅读 · 0 评论 -
将Maven工程中的Java代码打包成SDK
话不多说直接贴上pom.xml中打包需要添加的依赖。<build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId&g...原创 2020-02-17 20:47:55 · 5406 阅读 · 0 评论 -
计算机底层位运算学习笔记
分享一个讲解位运算的视频链接:https://www.bilibili.com/video/av38555778?p=5以下是文字讲解:标黄的数字为参与运算的二进制数。&:代表与;& 运算的两组数中只有两者都是1的情况才,结果才是1,其余情况都是0。|:代表或;| 运算的两组数中只要其中一组数中有1,则结果是1,其余情况都是0。~:代表取反; 即0...原创 2020-02-06 21:31:44 · 134 阅读 · 0 评论 -
JDK1.8版本下载
下载地址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html第二步:输入Oracle账号输入Oracle账号地址后方可下载, 如果没有Oracle账号地址,烦请自行注册。登录成功,即可下载jdk...原创 2020-01-31 20:32:28 · 1697 阅读 · 0 评论 -
Spring的AntPathMatcher工具类用法
AntPathMatcher是org.springframework.util工具包下的方法。 /** * A convenient, alternative constructor to use with a custom path separator. * @param pathSeparator the path separator to use, must not b...原创 2019-04-06 10:33:16 · 5572 阅读 · 0 评论 -
在Linux系统中 no main manifest attribute, xxx.jar
前言:使用gradle构建项目,在Intelli IDEA中能够正常启动,但是部署到Linux环境中的时候报了错误,no main manifest attribute, xxx.jar,开始定位的时候认为是gradle的原因,于是把gradle转换成maven构建的形式。一. gradle项目转换成maven项目第一步:选择右边 gradle ->Task -> othe...原创 2019-12-25 16:39:13 · 3903 阅读 · 0 评论 -
解读Java中BigDecimal.ZERO.compareTo()的返回值含义
Java compareTo() 用法例如:public static void main(String[] args) { BigDecimal bnum1, bnum2; bnum1 = new BigDecimal("10"); bnum2 = new BigDecimal("20"); int res = bnum1.compareTo(bnu...原创 2018-09-12 21:15:34 · 43059 阅读 · 0 评论