自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 TCP分隔符和定长解码器

简介​ TCP上层的协议通过四种方式对消息进行区分消息长度固定,累计读取到长度总和为定长LEN的报文后,就认为读取到了一个完整的消息;将计数器置位,重新开始读取下一个数据报;将回车换行符作为消息结束符,如FTP协议,这种方式在文本协议中应用比较广泛;将特殊的分隔符作为消息的结束标志,回车换行符就是一种特殊的结束分隔符;...

2019-03-19 21:11:59 857

原创 netty入门

简介​ 在使用Netty开发TimeServer之前,先回顾一下使用NIO进行服务端开发的步骤。创建ServerSocketChannel,配置它为非阻塞模式;绑定监听,配置TCP参数,例如backlog大小;创建一个独立的I/O线程,用于轮询多路复用器Selector;创建Selector,将之前创建的ServerS...

2019-03-16 18:06:26 164

原创 TCP粘包和拆包

简介​ TCP是个流协议,在TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓存区的实际情况进行包的划分。所以在业务上,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送。这就是TCP的粘包Sticky和拆包unpacking in。TCP粘包 拆包发生的原因应用程序writ...

2019-03-16 15:24:57 192

原创 nginx入门

简述​ nginx是一个开源且高性能 可靠的HTTP中间件 代理服务常见的HTTP服务HTTPD - Apache基金会IIS - 微软GWS - Google优点IO多路复用​ 多个描述符的I/O操作都能在一个线程内并发交替地顺序完成。这就叫I/O多路复用,这里的复用指的是复用同一个线程。​ IO多路复用...

2019-03-14 13:06:45 80

原创 nginx socket短链接转发

简介​ 在实现物联网过程中,起初设备所有都是往一台服务器发起请求进行直连。随着设备的增多,一台服务器肯定吃不消。于是想着通过nginx做分发。配置​ nginx配置文件添加如下配置123456789101112131415161718stream { # 添加socket转发的代理 upstream soc...

2019-03-13 05:47:37 726

原创 Retrofit2调用远程接口

Retrofit2调用远程接口前言调用远程接口其中一种实现便是以retrofit2的方式实现,以下笔记备注一下实现步骤。准备工作pom文件引入使用retrofit2需要在pom.xml引入相关依赖1234567891011121314151617181920212223242526272829<dependency> ...

2019-03-08 19:59:00 693

原创 Docker 自定义容器镜像

将容器变成镜像法一 docker commit1docker commit <container> [repo:tag]当我们在制作自己的镜像的时候,会在container中安装一些工具,修改配置,如果不做commit保存起来,那么container停止后再启动,这些更改就消失了。验证例子docker create ...

2019-03-08 17:37:23 87

原创 MockMvc测试

SpringBoot MockMvc Junit4进行单元测试前言使用SpringBoot MockMvc测试是快速测试的一种手段,需要在pom.xml文件中加入依赖1234<dependency> <groupId>org.springframework.boot</groupId> <a...

2019-03-08 07:25:36 476

原创 并发基础

Java内存模型-同步八种操作lock(锁定):作用于主内存的变量,把一个变量标识为一条线程独占状态unlock(解锁):作用于主内存的变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定read(读取):作用于主内存的变量,把一个变量值从主内存传输到线程的工作内存中,以便随后的load动作使用load(载...

2019-03-05 07:01:25 50

原创 nginx部署vue

vue打包​ 使用命令1npm run build生成打包文件,生成文件包含一个static文件夹以及一个index.html文件,位于项目的/dist目录下。上传文件​ 此处我将文件上传至 /data/wwwroot/mobile_school_h5/campus_micro/dm200 路径下。nginx配置n...

2019-02-21 15:30:54 205

原创 vue入门

简介​ 使用npm脚手架创建1vue init webpack viroyal-demo安装插件12npm i vant -Snpm i axios -Sstore引入1npm i vuex-persistedstate -S持久化12import createPersistedState from 'vuex-pers...

2019-01-31 22:24:55 54

原创 文件拷贝

IO1234567891011public static void fileCopy(String source, String target) throws IOException { try (InputStream in = new FileInputStream(source)) { try (Output...

2019-01-21 14:39:37 66

原创 Docker 入门

基础命令获取、创建12docker pulldocker build运行docker容器docker run [OPTIONS] IMAGE[:TAG/][COMMAND][ARG...]决定容器的运行方式,前台执行还是后台执行docker run后面追加-d=true或者-d,那么容器将会执行在后台模式。docker exec...

2019-01-10 12:06:51 62

原创 十进制-十六进制转换问题

​ 最近在做 Netty解析TCP协议的时候,遇到了hexstring和string的转换问题。HexString​ Hex是由对应机器语言码和/或常量数据的十六进制编码数字组成。进制转换十进制转十六进制1String hex = Integer.toHexString(48); // 30十六进制转十进制12Str...

2019-01-08 21:37:56 152

原创 Java面试题小记2

1.抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?​ 不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛盾的。本地方法是由本地代码(如C代码)实现的方法,而抽象方法是没有实现的,也是矛盾的。synchroniz...

2018-12-29 20:21:29 56

原创 git提交步骤

Part 1 提交未授权问题git add -Agit commit -a ""git push origin HEAD:refs/for/masterexport GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1'scp -oKexAlgori...

2018-12-29 00:55:22 130

原创 StudyEngWithPiggy

生僻词12345678910111213141516devastate 英 /'devəsteɪt/ 毁灭Holocaust 英 /'hɒləkɔːst/ 大屠杀participation 英 /pɑː,tɪsɪ'peɪʃn/ 分享substantial英 /səb'stænʃ(ə)l/ adj. 大量的;实质的;内容充实的n. 本质...

2018-12-14 06:35:46 69

原创 Java面试题小记

short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?答:对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为...

2018-12-12 20:30:08 55

原创 多关键字List去重

List去重(n个条件去重)​ 最近遇到一个情况,需要在一个List中去除包含多个字段相同的重复对象。寻找Lambda无果,只好使用一下方法。问题说明​ 目前存在DepotLogs对象,其中的barCode和posId可能存在两个DepotLogs对象的两个属性值相同,因此需要去除重复对象只留一条。DepotLogs对象...

2018-12-12 00:20:06 193

原创 gradle项目过于庞大无法加载完成

前言​ 最近在接触cas-server统一认证系统,从github得到源码后导入idea,加载gradle文件加载到一半就报VM内存爆满,重试了一晚发现不行。解决方案更改一下idea的配置文件idea.vmoptions就可以了。tips:机器内存需要6G以上,不然卡爆。123456789101112131415161718...

2018-11-30 20:20:19 177

原创 cas-server中KeyStore配置

生成key服务端密钥文件keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg SHA1withRSA -validity 36500 -alias sav.cas.com -keystore d:/thekeystore.thekeystore -dname "CN=sav.cas...

2018-11-30 19:09:59 718

原创 cas-v5.3.6JDBC认证

创建数据库12345678910111213141516171819202122232425262728293031323334353637383940CREATE DATABASE /*!32312 IF NOT EXISTS*/`db_ids` /*!40100 DEFAULT CHARACTER SET utf8 */;USE ...

2018-11-30 18:26:50 139

原创 cas-v5.3.6骨架搭建

​ 由于公司使用JDK版本为1.8,而cas 6.x需要JDK 11,因此在cas 5.3.x的基础上搭建cas。脚手架下载​ 在cas-overlay-template官网选择Branches为5.3的分支,下载到本地。由于通过Maven仓库去下载cas-server-webapp-tomcat:war:5.3.6速度...

2018-11-30 07:00:32 272

原创 mysql删除指定日期前数据

需求​ 由于数据上报产生数据量过大,因此需要定期删除无用数据。程序方式​ mysql语句如下:1DELETE FROM t_iot_cb_device_data_changed WHERE EVENT_TIME IS NULL OR DATE(EVENT_TIME) <= DATE(DATE_SUB(NOW(),...

2018-11-29 11:21:41 10818

原创 Hexo-Next小记

Hexo简易安装前置条件npm install -g hexo-cli安装hexonpm install -g hexo-cli插件代码复制功能clipboardjs​ 下载第三方插件clipboard.min.js,在next主题下的source\js\src目录下新建clipboard-use.js1234567891...

2018-11-27 07:57:44 131

原创 gradle配置源及地址

配置阿里云仓库​ 在gradle目录下的init.d目录下创建init.gradle文件1234567891011121314151617allprojects{ repositories { def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/conte...

2018-11-17 08:28:43 735

原创 Mybatis:Invalid bound statement (not found)

mybatis– Invalid bound statement (not found)异常描述org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法在pom.xml文件中的build中添加以下代码:123456789&...

2018-11-17 06:32:43 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除