- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 如何保证接口的幂等性?常见的实现方案有哪些?
什么是幂等性幂等性是系统服务对外一种承诺,承诺只要调用接口成功,外部多次调用对系统的影响是一致的。声明为幂等的服务会认为外部调用失败是常态,并且失败之后必然会有重试。如何保证幂等使用数据库实现幂等性 使用 JVM 锁实现幂等性 使用分布式锁实现幂等性一. 数据库实现数据库实现幂等性的方案有四个:1.状态机幂等如果业务上需要修改订单状态,例如订单状态有待支付,支付中,支付成功,支付失败。设计时最好只支持状态的单向改变。这样在更新的时候就可以加上条件,多次调用也只会执行一次。例如想
2021-08-04 15:15:58
584
原创 IntelliJ IDEA根据wsdl生成WebServices客户端代码 Sprinng Boot
最近项目要用到一个发票开票接口,但是对方居然用的是webService的方式调用,而我们用的是SpringBootIDEA在2019的版本后就没有显示的集成WebService了,导致找了很多种方式,都没有很详细的说明白,具体要 怎么处理,刚好弄清楚,写个笔记记录下我的IDEA版本2020.1, JDK1.8 项目环境:Springboot1.新建module,选择Apach Axis2.点击下一步,输入项目名称,后点完成3.出现如下的界面,勾选需要生成的代码,这里要注.
2021-08-04 15:11:24
4411
1
原创 Java 根据文件目录批量替换替换文件格式
import org.apache.commons.io.IOUtils;import org.apache.commons.lang3.StringUtils;import java.io.*;public class FileUtils { public static void main(String args[]){// formatFile("D:\...
2020-03-12 10:19:22
354
原创 BlockingQueue(阻塞队列)详解
一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。二. 认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个...
2019-08-14 17:31:23
176
转载 BigDecimal.setScale用法总结
1.BigDecimal num1 = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失2.BigDecimal num2 = new BigDecimal(2);//这种写法是可以的3.BigDecimal num = new BigDecimal("2.225667");//一般都会这样写最好4.int count = num.scale...
2019-06-25 11:01:32
309
原创 List 集合排序 降序&升序
/**先排序,降序 然后取前10 b1在后是升序*/Collections.sort(portraitReportVos, new Comparator<PortraitReportVo>() { public int compare(PortraitReportVo o1, PortraitReportVo o2){ BigDecimal b1 = o1....
2019-06-20 11:17:52
6231
原创 Springboot 文件传输大小设置
设置上传下载文件大小根据不同版本,对应的设置值不一样Spring Boot 1.3.x and earliermultipart.maxFileSizemultipart.maxRequestSizeSpring Boot 1.4.x and 1.5.xspring.http.multipart.maxFileSizespring.http.multipart.max...
2019-06-10 11:07:55
1059
原创 根据字段配置 动态获取对象属性
/**3.根据资金方字段配置展示对应的字段*/ /**3.1获取资金方字段配置*/ ClearProofFieldConfig clearProofFieldConfig = clearProofFieldConfigManager.selectByLoanChannelId(clearProofBatch.getLoanChannelId())...
2019-06-03 21:55:31
748
原创 mybatis动态sql中foreach标签的使用
foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下我们假如说参数为---- int[] ids = {1,2,3,4,5} ----那么打印之后的SQL如下:<delete id="deleteBatch"> delete from user where id in <foreach collection="array" item=...
2019-05-30 17:31:59
1284
转载 由浅入深理解Raft协议
原文出处:https://www.sohu.com/a/198360462_7127630 - Raft协议和Paxos的因缘读过Raft论文《In Search of an Understandable Consensus Algorithm》的同学都知道,Raft是因为Paxos而产生的。Paxos协议是出了名的难懂,而且不够详细,紧紧依据Paxos这篇论文开发出可用的系统是非常困难的...
2018-12-20 11:36:56
268
原创 Springboot集成Spring session利用redis来实现session共享
1.在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下:@SpringBootApplication@EnableRedisHttpSessionpublic class DemoApplication { public static void main(String[] args) {...
2018-12-18 17:33:57
375
转载 数据库索引原理
使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。 为什么要给表加上主键? 为什么加索引后会使查询变快?...
2018-12-12 11:41:59
117
原创 Linux常用命令
1.查找对应的项目进程ps -ef |grep ruoyi-admin.jar2.在linux下发布Springboot jar 项目nohup java -jar ruoyi-admin.jar &3.查看端口号是否可用 lsof -i:端口号lsof -i:端口号4.centos7安装命令:用yum install 对应的命令 yum in...
2018-11-28 16:45:08
260
原创 linux快速安装JDK1.8
1.去Oracle 官网下载自己对应的版本可以用wget 的方式直接下载,不知道啥原因我的linux下载不了所以我直接在windows10下载好wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz2.拷...
2018-11-28 14:12:06
3959
原创 docker 容器下运行tomcat 部署应用
docker安装tomcat查找Docker Hub上的tomcat镜像runoob@runoob:~/tomcat$ docker search tomcatNAME DESCRIPTION STARS OFFICIAL AUTOMATEDtomcat ...
2018-11-27 20:53:13
552
原创 Docker 安装 MySQL
方法一、docker pull mysql查找Docker Hub上的mysql镜像runoob@runoob:/mysql$ docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATEDmysql ...
2018-11-27 16:40:33
133
原创 mybatis-plus笔记
1.添加pom文件添加maven依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.1</version></depende
2018-11-27 14:17:22
655
原创 CentOS Docker 安装和个人问题解决总结
Docker支持以下的CentOS版本:CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本前提条件目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64...
2018-11-27 11:26:05
1218
原创 SpringMVC工作原理
SpringMVC的工作原理图: SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServ...
2018-11-20 16:48:05
89
转载 深入理解JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子...
2018-10-31 11:47:46
197
转载 Java总结篇系列:Java多线程(三)
本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题。一.一个典型的Java线程安全例子public class ThreadTest { public static void main(String[] args) { Account account = new Account("123456", 1000); DrawMoney...
2018-09-18 22:48:57
103
转载 Java总结篇系列:Java多线程(二)
四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻塞的主要方法。1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。public class ThreadTest { public st...
2018-09-18 21:39:39
118
原创 Java总结篇系列:Java多线程(一)
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图:上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thre...
2018-09-18 17:42:00
154
1
原创 Spring mvc 定时任务
1.springmvc-servlet.xml 配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
2018-09-10 11:26:40
355
转载 SpringMVC工作原理
SpringMVC框架介绍 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框...
2018-08-21 01:02:33
187
转载 HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法区别
尽管HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。下面是HttpServletResponse.sendRedirect方法实现的请求重定向与RequestDispatcher.forward方法实现的请求转发的总结比较:(1)Re
2017-03-21 14:12:46
758
转载 HashMap与HashTable的区别
HashMap和Hashtable的区别导读:1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。 2 HashTable是线程安全的一个Collec
2017-03-02 14:19:05
142
转载 db2 专用工具 版本设置sql自动提示
9.1以前的版本设置是:tools --tool properties -- SQL Editor -- Auto Completion(转栽百度知道)然后9.1的版本设置没有sql eidtor,经过本人试验,在这里设置:tools --tool properties这样就完成了,有任何db2的问题都可以在评论
2015-08-18 09:02:25
969
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人