- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 freemarker ftl to html
代码小记public class FreemarkerUtils { private static final String TEMPLATE_LOCATION = "/templates"; private static final String HTML_FILE = ".html"; private static Configuration configuration; static { configuration = new Configur
2021-12-18 17:03:01
582
原创 MQTT SpringBoot入门跑起来
一、简单介绍1.MQTT-即时通讯协议mqtt broker即服务端mqtt client即客户端2.主要特点使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合对负载内容屏蔽的消息传输使用 TCP/IP 提供网络连接有三种消息发布服务质量:“至多一次”:适用消息频繁发且丢失一两条不影响的场景,如:环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”:确保消息到达,但消息重复可能会发生“只有一次”:确保消息到达一次。优点是确保消息送达且有且仅有一
2021-09-23 10:56:47
444
原创 swagger3 spring boot
官网:https://swagger.io/快速接入1、pom文件加入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> <
2021-06-13 22:13:47
406
原创 nacos(一) 入门安装
官方网站:https://nacos.io/zh-cn/docs/what-is-nacos.html1.依赖下载64 bit OSJDK1.8+Maven 3.2.x+2.下载安装下载:https://github.com/alibaba/nacos/releases/download/2.0.1/nacos-server-2.0.1.tar.gz解压:tar -xvf nacos-server-2.0.1.tar.gz3. 启动服务cd nacos/binsh startup.s
2021-05-29 10:35:57
178
原创 开启摄像头权限
注意:chrome是需要https协议的1、如果是iframe框架var frame = window.parent.document.getElementById("subFrame");subFrame.allow = "microphone;camera;midi;encrypted-media;";或者<iframe src="subFrame" frameborder="0" width="800" height="600" allow="microphone;camera;mi
2021-03-22 14:01:53
775
原创 H5拍照上传
由于Flash在2020年底限制,…实现主要部分静态页面部分...<video id="video" width="480" height="240" control></video><canvas id="canvas" width="480" height="240"/>脚步部分var ctx;var video = $("#video");var mediaStreamStrack;// 初始化摄像头function initCan
2021-03-16 14:57:48
740
原创 apache HttpClient
简单备注下Apache HttpClient常用封装使用包括get,post及发送文件相关,直接上代码。public static void closeHttpResource(CloseableHttpClient closeableHttpClient, CloseableHttpResponse closeableHttpResponse) { try { if (null !=
2020-10-24 11:29:09
171
原创 设计模式之责任链模式实例
概述:申请和审批业务为例1、抽象申请人public abstract class AbstractApplier { int money; /** * 申请费用 * * @param money 费用 单位:分 */ abstract void apply(int money);}2、职员public class Staff extends AbstractApplier { @Override public
2020-09-04 11:55:05
158
原创 rsa加解密、加验签
一、简介RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。二、加签、加密说明加密和加签(签名)都是为了安全性考虑,但略有不同。简单的说,加密是为了防止信息被泄露,而加签(签名)是为了防止信息被篡改。三、加密/解密1、A生成一对密钥(
2020-09-04 11:13:08
348
原创 Mysql联合索引实测
数据库表字段索引的建立对于数据检索的查询效率提升至关重要。本文主要讲解联合索引建立时索引命中场景。1、创建表create table 't_user_role'( id bigint(20) auto_increament, user_id bigint(20) not null, role_id bigint(20) not null, createTime datetime, primary key(id), key 'idx_user_role_id'('user_id'
2020-09-02 17:13:37
141
原创 全链路跟踪之Dubbo
首先简单认识下**@Activate及RpcContext**@Activate:主要使用在有多个扩展点实现、需要同时根据不同条件被激活的场景中,如Filter需要多个同时激活,因为每个Filter实现的是不同的功能。RpcContext:上下文信息1、Activate注解详细说明参数名描述String[] group()URL中的分组如果匹配,则激活String[] value()URL中如果包含该key值,则激活String[] before()填写扩展点列
2020-09-02 16:40:16
585
原创 分布式事务实例讲解
1.前言随着业务系统复杂度不断增加,系统被拆分N多微服务,相互之间通过远程调用协作来完成。一次操纵由多个服务来完成,需要考虑分布式事务保证业务流程闭环。本文主要讲解基于消息最终一致性来解决2.常见概念事务:由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。原子性:执行单元中的操作要么全部执行成功,要么全部失败。如果有一部分成功一部分失败那么成功的操作要全部回滚到执行前的状态。一
2020-08-31 15:59:34
488
原创 序列化、反序列化几种方式
引言为方便业务上不同应用之间数据传输。1.JDK自带 @Test public void jdkTest() throws Exception { // 序列化 UserVO user = new UserVO(); user.setUserId("112"); user.setPassword("AKS"); FileOutputStream fos = new FileOutputStream(PATH
2020-06-20 17:53:26
290
原创 浅克隆、深度克隆实现
引言有些时候我们需要将java对象内容重写复制一份时(如我们需要将当前记录作废,重新插入一条记录时),可以重写new一个对象,也可以使用clone方法。实现Cloneable接口。1.浅克隆:是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。public class PersonVO implements Cloneable, Serializable { private static final long serialVersionUID = 319
2020-06-20 17:29:28
271
原创 Guava Client缓存
引言微服务场景下,有时候需要将二方调用的数据缓存起来避免每次都去RPC调用,可以选择Guava进行缓存。简单使用如下引入依赖<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version></dependency>创建缓存类public c
2020-06-17 14:27:53
176
原创 reactor-spring接入
前言随着业务系统复杂程度增加,为了提示单个请求的响应速度。很多时候一些非核心功能可以让其异步去执行,如日志记录、发短信、发邮件等。这个时候可以快速的接入reactor。对于spring boot应用接入非常方便pom.xml文件引入依赖<dependency> <groupId>org.projectreactor</groupId> <artifactId>reactor-spring</artifactId> <v
2020-06-17 14:10:19
548
原创 JavaBean转Map的常用方式
引言实际操纵过程中经常会出现需要将java对象转换成map,为了避免因为每个对象属性多且不一样的情况,可以通过jdk自带的功能抽象出公用方法。之前的写法Map<String,Object> map = new HashMap<>();map.put("属性1","value1");map.put("属性2","value2");map.put("属性3","value3");...改进后的写法(方式一)public static Map<String, Ob
2020-06-07 11:43:54
2272
原创 设计模式之工厂模式实例
引言最近公司业务拓展需要对接互联网医院,针对数量繁多的医院且每家医院的要求各不一样,每次新增医院都会改动到之前的方法,增加条件判断,导致需要测试全量回归,迭代效率低下,为此结合软件设计的开闭原则(扩张开放、修改关闭),引入设计模式对代码进行优化,记录下来。希望对刚碰到类似问题的朋友有帮助。优化前的代码//查询病历记录public List<MedicalRecordDTO> queryMedicalRecord(String hospitalCode,...){ if("PXEY"
2020-06-06 09:02:15
379
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人