自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (1)

原创 Netty源码学习之ByteToMessageDecoder的浅谈分析

一、简介ByteToMessageDecoder类浅谈Netty的源码学习之ByteToMessageDecoder,这个解码器是Netty诸多解码的父类解码器,下图就是ByteToMessageDecoder类的子类和父类以及实现的接口类关系。通过上面两张图片我们可以清晰看到有诸多子类是实现了ByteToMessageDecoder类的。下面我们说说ByteToMessageDecoder的主要功能,它主要就是实现入站操作,它是一个不能共享的解码器,因为需要存还没有解码完的数据,还有各

2020-07-20 17:00:19 85

原创 项目遇到的多线程的并发问题和分析

这里先简单描述一下问题,场景:在一个线程中创建了另外一个线程处理一部分业务,主线程对数据库进行新增操作,在操作结束后,启动一个新的线程去执行查询插入的数据的查询操作,发现了数据没有查询的问题。下面我们我们直接上代码:@Service@Transactional@Slf4jpublic class RPatientService extends BaseService<...

2020-01-11 16:12:57 183

转载 JDK1.5的@Retention注解的使用和分析

注解@Retention可以用来修饰注解,是注解的注解,称为元注解。Retention注解是RetentionPolicy类型的,是一个标准的枚举类型.这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE。按生命周期来划分可分为3类:1...

2020-01-09 11:43:55 68

原创 MyEclipse安装activiti-designer-5.18.0.zip

需要下载安装:activiti-designer-5.18.0.zip1.下载地址:http://www.activiti.org2.将下载的activiti-designer-5.18.0.zip 解压安装在MyEclipse的安装目录的dropins目录下创建一个目录,名字随意。3.在activiti目录下,再创建一个 “activiti.link”文件,在...

2020-01-06 14:17:28 316

原创 Mybatis的源码学习之Executor

1.概述Executor接口是Mybatis的执行器,是Mybatis的调度中心,是SQL语句的生成和查询缓存的维护。Executor是通过Configuration的newExecutor函数来生成的。2.Executor结构下面介绍一下Executor接口的实现类以及实现类的继承类之间关系。从上面的Executor的结构图,我们得到了Executor接口有两个实现类分别为:...

2019-11-08 11:41:15 54

原创 Centos7安装Kafka

这里我们需要安装一个kafkaMQ队列,用于消息系统。在安装Kafka之前我们需要做一些准备工作,kafka是依赖于zookeeper分布式锁,所以我们需要在Centos系统中先安装zookeeper,但是zookeeper需要jdk环境,所以我们同样需要安装JDK。这里安装zookeeper就不在细说了,不会的可以看我的:https://blog.csdn.net/gelong_b...

2019-06-03 11:24:37 2632

原创 使用dockerfile创建一个包含jdk和tomcat的镜像

这里就不在赘述docker的一些基础应用了直接上步骤:1.第一步需要在宿主机上创建一个文件夹(/opt/centos的文件目录)2.将tomcat和jdk上传到宿主机上。(如图)注:上面都是准备工作,这里就不一一详细赘述了。3.在当前文件夹下面创建一个dockerfile文件,文件内容如下.#镜像FROM centos#创建者MAINTAINER gl.com...

2019-05-30 14:03:07 1037

原创 使用Xshell实现SSH隧道穿透

最近公司开发项目遇到了一个非常蛋疼的事情!我们公司同时迁入了电信、移动、联通三家的百兆光纤网络,这样就产生一个蛋疼事情。A所使用的网络是电信网络,他是开发的了微信功能的服务的接口项目,给B和C提供所有微信的功能,所有调取微信能力都需要A来实现完成。B所使用的 网络是移动网络,他开发了一个公众号的项目程序,他需要调用A来完成所有微信的能力,但是他和A不在一个局域网,这样他完全没有办法去调用A...

2019-05-28 14:13:37 2587 1

原创 vsftpd服务器的安装和配置

安装FTP服务器vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点,下面开始搭建:必须使用root用户进入系统。 使用命令:rpm –qa | grep vsftpd,查看当前系统是否安装了ftp...

2019-04-26 11:06:19 131

原创 zookeeper使用curator框架调用实例

zookeeper的原理分析参考链接:https://blog.csdn.net/gelong_bokewang/article/details/89208234zookeeper的安装步骤参考链接:https://blog.csdn.net/gelong_bokewang/article/details/89157375本文是使用CUrator框架来调用zookeeper客户端,因为zo...

2019-04-12 11:49:49 223

原创 Zookeeper分布式锁的原理

Zookeeper分布式锁的原理问:在什么样的场景下我们需要使用Zookeeper分布式锁呢? 在分布式的项目中,指定的项目我们需要使用到锁的机制,但是在分布式下我们使用的内存锁都是相对独立的,因为每一个项目都有一个自己的JVM,而我们使用java类的锁都是受JVM控制的,这样在两台真实服务器上调用同一把锁的时候是没有办法进行锁操作,这个是我们就需要用到Zookeeper分布式锁了。...

2019-04-11 13:36:54 329

原创 单机上安装分布式的zookeeper

一、安装环境安装Zookeeper需要的环境是jdk1.7或者以上的版本。系统linux和Windows皆可,这里讲解的是在linux系统下安装。二、安装Zookeeper1.下载并安装安装Zookeeper的文件包,在linux下安装需要zookeeper-3.4.14.tar.gz链接地址:http://www.apache.org/dyn/closer.cgi/z...

2019-04-10 11:01:22 610 2

原创 JAVA实现AES对称加密算法-------加密和解密

package com.gl.test;import javax.crypto.*;import javax.crypto.spec.SecretKeySpec;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.NoSuch...

2019-03-14 14:26:21 443

原创 Hex编码

Hex编码的编码原理:* Hex编码的原理就是将原来8位的二进制字节打断,分成两个4位的,并且在前面加上4个零,* 进行补位这样一个8位二进制字节就变成了2个8位的二进制字节,在将新得到的2个二进制字符进行16位进制转换* 得到的新的16位字符串就是Hex的值,所以 二进制的[72, 69, 88] 《hex》 484558是相等的。* [72, 69, 88]byte数组的二进制=‭...

2019-03-13 11:01:42 3659

原创 复习Base64编码集的收获

最近因为工作需要对一些文件上传需要进行base64编码操作,于是就自己温习了一下base64编码集的原理,感觉收获良多,在这里和大家分享一下!因为我们都是在互联网上数据的传输最终都会以二进制的方式传输,文件上传的I/O流也不例外,最终都是二进制数组的方式传输,但是二进制保存到数据库中却是不太现实的,因为它是在太长了。例子:我们将一个本地文件同I/O读取出来,并且转换成byte组,...

2019-03-12 14:46:06 94

原创 用java的IO实现网络文件下载到本地路径

最近工作因为需求要做一个小功能,根据客户给的的网路路径进行文件的下载。下面不多说直接上代码:package com.gl;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;public class testIo { /** * 从网络Url中下载文件 * ...

2019-03-08 17:41:24 1018

原创 Docker拉取Oracle的11g版本数据库

1.查询现有镜像命令:docker search oracle2.拉取oracle镜像的命令:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g注:这可能时间比较长,根据个人网速而定,不好可能几个小时。3.查看拉取的镜像的命令:docker images 4.运行oracle容器镜像...

2019-02-21 16:47:44 1142

原创 使用Docker拉取tomcat镜像和mysql镜像部署实施

拉取tomcat镜像查询现有镜像命令:docker search tomcat注:name表示名称Description:介绍Stars:关注度Official:是不是官方的Automatexd:是不是私有创建的拉取tomcat8.5版本的镜像命令:docker pull tomcat:8.5注:可以使用:x.x的方式选择拉取容器的版本。...

2019-02-20 17:27:15 10787 4

原创 CentoS下安装Docker

介绍:Docker是一个开源的应用引擎,在linux系统进行拉取容器相比于我们传统使用yum或者rpm的方式安装容器都要方便很多,因为原始的yum和rpm方式安装需要解决大量依赖关系,非常复杂和繁琐,但是Docker让开发者可以打包他们的应用以及依赖包到一个可以移植的容器中,进行移植。安装Docker:注:安装Docker在CentoS系统中,需要保证系统的内核要求高于3.10的...

2019-02-20 10:02:47 92

原创 CentOS的开机启动服务的原理

Linux系统在开机启动时,会自动执行/etc/rc.d目录下的初始化程序。所以我们可以把启动任务放到该目录下,而且rc.local是在完成其他所有初始化之后执行的,所以我们在这里做手脚是很合适的。下面的图片就是rc.local的内容:在这里添加程序的开机启动的方式就是:程序名称 程序路径这是一种方式,但是这里不推荐这种方式来配置开机启动服务。Linux系统中/etc...

2018-07-20 15:43:13 956

原创 CentOS安装Http2.0测试

我测试在Centos6.9的操作系统完成HTTP2.0的安装1查看我们现在系统下的openssl版本       Openssl version2.升级我们openssl为1.0.2版本以上:       a)https://www.openssl.org/source/ 官网可以下载。b)通过ftp上传到电脑上,通过tar解压:tar –zxvf openssl-1.0....

2018-07-18 15:58:35 1458

原创 关于select标签多选功能的select-2样式的清空选中项

今天说的就是select标签的多选功能的 使用,使用select2组件完成多选。下面是我们需要引入的文件JQuery最好大于等9,要不会有一些特效无法使用<link rel="stylesheet" type="text/css" href="select2.min.css"> <script type="text/javascript" src="jquery-11.3.m

2018-06-12 10:35:54 2444 1

原创 配置Nginx负载均衡器

需要一台负载均衡服务器Nginx,两台Tomcat真实服务器Nginx服务器IP 192.168.45.120Tomcat服务器IP:192.168.45.121Tomat服务器IP:192.168.45.122查看nginx的使用命令:/usr/local/nginx/sbin/nginx -h截图:修改配置文件配置nginx服务器配置文件目录:/usr/local/nginx/conf/ngi...

2018-05-25 15:47:56 269

原创 CentOS_6安装Nginx(tengine)

tengine的下载链接:http://tengine.taobao.org/download_cn.html       点击打开链接tengine的使用文档链接:http://tengine.taobao.org/nginx_docs/cn/docs/     点击打开链接我下载的是Tengine-2.2.2.tar.gz,安装Tengine步骤:第一步:解压tengine-2.2.2.tar...

2018-05-25 15:28:10 222

原创 CentOS6.8配置Tomcat使用Https协议

这里我们需要安装jdk与tomcat。系统是CentOS6.8_64位JDK是jdk1.7tomcat是apache-tomcat-7第一步:我们切换到jdk的bin目录下运行keytool生成证书和一对秘钥./keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "生成文件路径/文件名称" (例如:/home/Tomcat/tom...

2018-05-24 17:29:05 826

原创 浅谈数字证书原理

数字证书的作用:数字证书就是为了证明服务端的公钥没有被篡改。数字证书的由来:数字证书是由第三方公认机构颁发的,因为颁发机构是世界公认,而且这些第三方的公认机构的根证书,往往都是在浏览器、JDK等中就有的。服务端给公认机构提交自己的申请者的信息,网站的域名,以及自己的公钥等信息,公认机构用Hash算计对这些信息计算得到摘要信息,在对摘要信息和所有信息用公认机构的私钥加密得到的就是数字证书。数字证书如...

2018-05-24 15:03:35 646

原创 浅谈什么是“数字签名”

我们在Https或者对称加密、非对称加密中常常老会听到“签名”这个词。今天我们就谈谈什么是“签名”。这里要说一下签名既不是对称加密也不是非对称加密。签名就是一种防止信息被篡改的验证方式。签名的应用环境:A要给B写一封信,A把信写好后,通过邮递的方式把信由低到了B的手里,这是B怎么能确认这封信没有被人修改过呢?但是要加上了签名就能确认。签名的原理:签名就是对A的信的内容进行hash计算(这里的has...

2018-05-22 15:54:26 4391

原创 浅谈对称加密与非对称加密

对称加密:假如有Client与Server之间要进行通讯,他们都各有一份A秘钥,Client用A秘钥加密传输信息。Server收到信息用A秘钥解密信息。之后Server对返回数据在用A秘钥加密,Client收到数据使用A秘钥解密。这样的一个通信过程就是对称加密的过程。缺点:对称加密的缺点就在于如果A秘钥要是泄露,这样Client与Server之间的信息传递就不安全了。截图:非对称加密:假如有Cli...

2018-05-22 10:19:23 1140 1

原创 Mybatis数据源和连接池的学习总结

一、数据源DataSource的分类Mybatis的数据实现都在datasource这个包内:即:Mybatis把数据源分为了三类:    JNDI:使用JNDI实现数据源(这里不介绍这种)    UNPOOLED:不使用连接池的数据源()    POOLED:使用连接池的数据源    注:我着重学习的是POOLED和UNPOOLED的两种类型即:Mybatis内部分别定义实现了java.sql....

2018-05-21 13:20:26 430

原创 CentOS6离线安装mysql数据库

第一步:这里我们需要根据我们的操作系统版本下载数据库:CentOS_6下载:mysql-5.7.22-1.el6.x86_64.rpm-bundle.tarCentOS_7下载:mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar下载地址:https://dev.mysql.com/downloads/mysql/截图:第二步:将下载文件解压,通过ftp上传到服务器下。...

2018-05-18 11:02:26 5079

原创 浅谈Https的工作原理以及制作SSl数字证书

1、 安装mod_ssl与opensslyum installmod_ssl openssl1)、OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。2)、一种以openssl 的工具箱为基础 专门为apachewebserver 提供密码保护,ssl(安全套阶层)和tls(传输套件层安全)的 协议。2、制作私钥、CRS、自我签署的金钥       1)、...

2018-05-10 15:24:16 237

原创 FreeMarker的一些常用属性

情景模式为编辑时候判断单位属性是否存在,存在加载时候首选健在存在值,不存在时候正常加载list                                                                          ${lundCard.dw3}                                  

2018-03-06 14:19:32 1275

原创 安装zabbix

安装zabbix-server(我这将zabbix-server和zabbix-server-mysql以及zabbix-server-web安装在同一台虚拟机上,也可以分别安装在不同的虚拟机上。)需要提前安装mysql数据库在官方下载源码包。下载地址:/www.zabbix.com/download下载:zabbix-3.4.4.tar.gz在官网下载rpm安

2018-02-02 14:53:11 292

原创 java的excel的导出

@RequestMapping(params="method=downloadExcel", method=RequestMethod.GET)public ResponseEntity downloadExcel(HttpServletRequest request) throws UnsupportedEncodingException { //设置Http头 HttpHeaders r

2018-01-17 09:38:00 145

原创 CentOs6.9安装keepalived实现双机

keeplived工作原理:keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。keepalived的原理可以这样简单理解:keepalived安装在两台物理服务器上,并相互监控对方是否在正常运行。当节点A正常的时候:节点A上的keepalived会将下面的信息广播出去:192.168.45.220 这个IP对应的MAC...

2018-01-09 14:54:12 1086 1

原创 CentoS6.8安装Oracle12

·1、查询主机名称hostnamecat /etc/sysconfig/network2、设置主机表vi /etc/hosts3、创建用户和组groupadd oinstalluseradd -g oinstall oraclepasswd oracle设置新的密码切换用户oralcesu - oracle4、创建文件夹并且修改 /stage 的权限mkdir -p stagechown -R o...

2017-11-24 15:08:47 597

原创 Linux安装图形化桌面

1、安装桌面软件CentOS6的系统安装插件有Desktop和X Window System,命令如何下:yum groupinstall "Desktop"安装X-Window组件yum groupinstall "X Window System"CentOS7的系统需要安装如下的要安装 GNOME 环境的插件安装命令如下:yum groupinstall "GNO...

2017-11-15 09:32:06 1766 1

原创 Oracle数据库常用命令(草稿)

查看表空间select * from dba_tablespaces;查询数据库文件select * from dba_data_files;查询所有表select * from dba_tables;创建表空间create tablespace 表空间名称 datafile '表空间的物理路径' size 50m autoextend on;

2017-10-17 16:36:02 107

原创 CentOS下启动多个tomcat并且配置不同JDK版本

我们在CentOS操作系统的环境下往往需要部署多个项目,而且每个项目的使用的JDK版本可能都不同,并且每个项目的端口也是不同的。这时候我们就不能和往常一样去配置系统的环境变量了。这里我先说我要完成的内容:我想在CentOS下使用tomcat7+JDK1.7部署一套项目使用的端口是8090在使用tomcat8+JDK1.8部署类外一套项目使用端口是9090第一步:我分别在home下创建t...

2017-08-30 14:46:46 260

原创 mybatis中一些sql语法使用方法

在mybatis中的mapper中使用批量添加,这里针对mysql与oracle是有所区别的在Oracle数据库<!-- 批量添加 --> <insert id="insertyygetparts" parameterType="java.util.List"> insert into C##TRAIN.YY_GETPARTS (ID, COMPONENTC...

2017-07-18 10:17:06 313

空空如也

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