2021年9月8日
摘要: 蓝牙连接问题: k580右上角的1,2,3键 常按某个编号键(1或2或3键)3秒后,对应灯会快速闪烁,这个时候电脑的蓝牙就能发现该键盘了。 或者尝试按fn+esc键 阅读全文
posted @ 2021-09-08 17:41 duanxz 阅读(14) 评论(0) 推荐(0) 编辑
  2021年8月18日
摘要: 一、什么是支付系统 自古以来,所有的商业活动都会产生货币的收款与付款行为。在人类漫长的历史长河中,记录收付款行为的方式不断迭代:古代的账房先生通过手工记账,工业社会通过收银机机械记账…… 今天,进入了互联网时代的我们,商业行为也一同进行了数字化与信息化的演变,成为今天的「电子商务」。 支付系统伴随着 阅读全文
posted @ 2021-08-18 20:09 duanxz 阅读(84) 评论(0) 推荐(0) 编辑
  2021年8月17日
摘要: 保障可维护性的主要诀窍是遵循DRY原则和Shy原则。 在一个系统的整个生命周期里,理解和改动这类维护工作的比例一般非常之高。为了维护的方便,要尽量将系统划分为可以独立理解与改动的模块。这就要在设计的时候注重DRY原则与Shy原则。不过,这两条原则有一定的冲突,并不总能兼得,于是在追求的时候要重视分寸 阅读全文
posted @ 2021-08-17 09:49 duanxz 阅读(29) 评论(0) 推荐(0) 编辑
  2021年8月3日
摘要: Geohash Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法。 基本原理:GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串 我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经为负,南纬为负,所以地球上的经 阅读全文
posted @ 2021-08-03 15:41 duanxz 阅读(20) 评论(0) 推荐(0) 编辑
  2021年7月30日
摘要: 1、IDEA 使用SequenceDiagram插件绘制时序图 可以在IDEA的Plugins中搜索上面的插件名,就可以安装插件了,如下图: 安装完成后,重启一下IDE。 使用方式 1、选中方法名(注意不要选类名),然后点击鼠标右键(显示可选项),选择Sequence Diagram 2、根据弹出框 阅读全文
posted @ 2021-07-30 15:40 duanxz 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 对象的序列化/反序列化大家应该都比较熟悉:序列化就是将object转化为可以传输的二进制,反序列化就是将二进制转化为程序内部的对象。序列化/反序列化主要体现在程序I/O这个过程中,包括网络I/O和磁盘I/O。 那么什么是http序列化和反序列化呢? 在使用springmvc/SpringBoot时, 阅读全文
posted @ 2021-07-30 15:35 duanxz 阅读(60) 评论(0) 推荐(1) 编辑
摘要: @RequestBody在处理请求方法的参数列表中使用,它可以将请求主体中的参数绑定到一个对象中,请求主体参数是通过HttpMessageConverter传递的,根据请求主体中的参数名与对象的属性名进行匹配并绑定值。此外,还可以通过@Valid注解对请求主体中的参数进行校验。 import com 阅读全文
posted @ 2021-07-30 14:53 duanxz 阅读(62) 评论(0) 推荐(0) 编辑
  2021年7月22日
摘要: Enumeration(枚举)接口的作用和Iterator类似,只提供了遍历Vector和Hashtable类型集合元素的功能,不支持元素的移除操作。 Java8中Enumeration接口的源码: package java.util; public interface Enumeration<E> 阅读全文
posted @ 2021-07-22 19:31 duanxz 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 前言: SPI是jdk内置的服务发现机制, 全称叫Service Provider Interface. SPI的工作原理, 就是ClassPath路径下的META-INF/services文件夹中, 以接口的全限定名来命名文件名, 文件里面写该接口的实现。 然后再资源加载的方式,读取文件的内容(接 阅读全文
posted @ 2021-07-22 17:20 duanxz 阅读(74) 评论(0) 推荐(0) 编辑
  2021年7月8日
摘要: 背景现在越来越多的公司采用gitlab来管理代码。gitlab有个问题,免费版不支持全局代码搜索,这很麻烦。如果把代码全部clone到本地就可以方便的进行各种搜索了。可是gitlab也不提供git clone所有项目的功能。 公司越来越大,项目越来越多,怎么办呢?自己写个脚本来批量的git clon 阅读全文
posted @ 2021-07-08 19:15 duanxz 阅读(220) 评论(0) 推荐(0) 编辑
  2021年7月7日
摘要: 背景 Cloud Native表面看起来比较容易理解,但是细思好像又有些模糊不清:Cloud Native和Cloud关系是啥?它用来解决什么问题?它是一个新技术还是一个新的方法?什么样的APP符合“云原生”的呢?等等。下面将会一一解读。 Cloud Native介绍 Cloud Native是Ma 阅读全文
posted @ 2021-07-07 17:15 duanxz 阅读(42) 评论(0) 推荐(0) 编辑
  2021年7月6日
摘要: Aerospike架构 Aerospike是一个开源的分布式键-值NoSQL数据库。它支持灵活的数据模式,并且支持满足ACID特性的事务。其架构包括如下三层: 客户端层:这一层包括带有Aerospike API的开源客户端库和能够感知数据在Aerospike集群中位置的追踪节点。 集群和数据分布层: 阅读全文
posted @ 2021-07-06 19:28 duanxz 阅读(269) 评论(0) 推荐(0) 编辑
  2021年7月2日
摘要: 最近在做一个小巧的规则引擎,看有的商业风控系统中用了groovy,感觉是不是可以借鉴使用groovy呢? 下面来自网上: 我们正在做的一个项目用到了,这是一个机器学习的平台,平台里面可以接入各种机器学习的算法,目前已经支持30来种算法。每个算法有各种各样的参数,为了提高用户友好性,让用户使用起来更方 阅读全文
posted @ 2021-07-02 10:49 duanxz 阅读(111) 评论(0) 推荐(0) 编辑
  2021年7月1日
摘要: 将Java Stream用于响应式编程中,是有局限性的。比如如下两个需要面对的问题: Web 应用具有I/O密集的特点,I/O阻塞会带来比较大的性能损失或资源浪费,我们需要一种异步非阻塞的响应式的库,而Java Stream是一种同步API。 假设我们要搭建从数据层到前端的一个变化传递管道,可能会遇 阅读全文
posted @ 2021-07-01 17:08 duanxz 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1 响应式编程之道 1.1 什么是响应式编程? 在开始讨论响应式编程(Reactive Programming)之前,先来看一个我们经常使用的一款堪称“响应式典范”的强大的生产力工具——电子表格。 举个简单的例子,某电商网站正在搞促销活动,任何单品都可以参加“满199减40”的活动,而且“满500包 阅读全文
posted @ 2021-07-01 14:52 duanxz 阅读(37) 评论(0) 推荐(0) 编辑
  2021年6月29日
摘要: 可以使用Spring RestDocs生成Spring Cloud Contract DSL文件和文档。如果您将其与Spring Cloud WireMock相结合,那么您将获得合同和存根。 为什么要使用此功能?社区中的一些人问关于他们希望转移到基于DSL的合同定义的情况,但他们已经很多Spring 阅读全文
posted @ 2021-06-29 16:07 duanxz 阅读(40) 评论(0) 推荐(0) 编辑
  2021年6月28日
摘要: 一、领域专用语言简介 1.1、什么是 DSL DSL(Domain Specified Language)领域专用语言。要理解什么是领域专用语言,需要先了解其创建背景。即为什么会诞生这样一种事物,其发明的目的是为了解决什么问题。 总的来说 DSL 是为了解决系统(包括硬件系统和软件系统)构建初期,使 阅读全文
posted @ 2021-06-28 15:05 duanxz 阅读(52) 评论(0) 推荐(0) 编辑
  2021年6月22日
摘要: 调用方和服务方约定好接口,生成映射文件,这个文件即可以用于客户端模拟服务,也可以用于服务方集成测试,这样双方开发也好、集成也好都会方便很多。下面我们来研究一下 Spring Cloud Contract,它就是基于 WireMock 实现了契约式的测试,上文中双方约定好的接口,其实就是双方的契约。 阅读全文
posted @ 2021-06-22 19:18 duanxz 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1、java.lang.IllegalStateException: You haven't configured a MockMVC instance. You can do this statically 在服务提供方,执行gradle test后,契约的validate失败,错误信息如下图: 阅读全文
posted @ 2021-06-22 18:20 duanxz 阅读(43) 评论(0) 推荐(0) 编辑
摘要: SHILI: org.springframework.cloud.contract.spec.Contract.make { request { method 'PUT' url '/fraudcheck' body(""" { "clientId":"1234567890", "loanAmoun 阅读全文
posted @ 2021-06-22 15:33 duanxz 阅读(35) 评论(0) 推荐(0) 编辑
  2021年6月8日
摘要: 什么是CICD CI / CD的采用改变了开发人员和测试人员如何发布软件。 最初是瀑布模型,后来是敏捷开发,现在是DevOps,这是现代开发人员构建出色的产品的技术路线。随着DevOps的兴起,出现了持续集成(Continuous Integration)、持续交付(Continuous Deliv 阅读全文
posted @ 2021-06-08 17:15 duanxz 阅读(151) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-06-08 14:39 duanxz 阅读(0) 评论(0) 推荐(0) 编辑
  2021年6月3日
摘要: 第三方支付机构是指非金融的机构在取得了人民银行颁发的《支付业务许可证》,可以从事相关支付业务。成为第三方支付机构需要满足准入和监管条件,必须拥有安全、规范、能独立完成支付业务处理的支付业务系统和灾备能力,具体涉及:注册资金规模、支付业务从业资格证、经营从业范围、从事金融业股东占比、反洗钱能力、技术研 阅读全文
posted @ 2021-06-03 17:48 duanxz 阅读(101) 评论(0) 推荐(0) 编辑
  2021年6月2日
摘要: 例如: public class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Bug"); list.add(" 阅读全文
posted @ 2021-06-02 11:03 duanxz 阅读(77) 评论(0) 推荐(0) 编辑
  2021年6月1日
摘要: 一个java 8的stream是由三部分组成的。数据源,零个或一个或多个中间操作,一个或零个终止操作。 中间操作是对数据的加工,注意,中间操作是lazy操作,并不会立马启动,需要等待终止操作才会执行。 终止操作是stream的启动操作,只有加上终止操作,stream才会真正的开始执行。 lambda 阅读全文
posted @ 2021-06-01 19:35 duanxz 阅读(66) 评论(0) 推荐(0) 编辑