7 QH_JAVA

尚未进行身份认证

每天 学习一点点 ,进步一点点……

等级
博文 369
排名 1k+

git https clone 的坎坷经历

git都知道是用来做代码管理、功能是相当强大所以使用的也是比较多,个人认为是对git也算是能熟悉使用的,但是今天公司服务器使用https来clone(个人一直使用ssh)然后问题就来了……详细描述问题过程1、gitinit2、gitclonehttps://git.xxxx.xxx/xxx……(远程仓库地址)3、输入用户名:输入gitlab的登录用户名4、输入密码:输...

2019-06-10 20:12:25

Github或GitLab上如何更新自己Fork的库,利用Fork库进行开发的整个流程

在实际的项目开发中我们经常会通过Fork项目库到自己的git仓库,减少对项目库的直接操作。流程脑图为:步骤:1.从原库Fork到自己的仓库2.将Fork库Clone到到本地我现在示例的库(我的为gitlab库)原库:http://gitlab.henu.edu.cn/web/sport_meeting.gitFork库:http://gitlab.henu....

2019-05-31 16:02:13

Netty实现简单RPC

使用Netty实现简单RPC,主要是netty的使用,所以缓存,服务的暴露等都使用缓存来代替了netty使用的是5.0+所以和4.0+可能有点不同……下面先看一下主要类:从两个方面来看,一是netty部分,netty客户端和服务端的实现二是从调用netty来看,其实也就是代理的实现。一、netty服务端因为这里是单线程实现所以服务端和我们平时写的都是一样的。

2017-12-10 19:34:59

tcp三次握手四次挥手

TCP的三次握手(建立连接)和四次挥手(关闭连接)参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流

2017-12-10 17:04:48

Netty中对象的序列化,反序列化

之前写的nettydemmo都是传递字符串的,而在真实使用的时候我们传的都是对象,然后写序列化方法进行序列化和返序列化,在netty中对序列化和返序列化都提供了相应的接口,而且netty也支持很多的序列化方式,但这里先提供java的序列化实现方式。一、java序列化方式packagecom.decode;importjava.io.ByteArrayInputStream;

2017-12-03 20:03:58

多次尝试请求接口

在接口请求的时候我们一般都是一次请求,成功就是成功失败就是失败,但是有的时候我们要同步的确定接口请求成功,比如一个订单的状态,订单状态对整个流程影响是很大的,所以我们在有必要的时候需要同步请求成功,所以我们就需要多次请求接口直到成功或者直到N次的请求,所以我们可以看看下面demo来实现三次请求。代码如下:importcom.alibaba.fastjson.JSON;importco

2017-12-01 00:14:24

httpclient连接池释放异常和多余资源

请求、异常链接监控代码如下:importorg.apache.commons.lang3.StringUtils;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http.client

2017-11-30 11:16:48

lombok注解介绍

lombok注解介绍lombok注解文档 lombok官网下载lombok是一个可以帮助我们简化java代码编写的工具类,尤其是简化javabean的编写,即通过采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,当然,这带来的副作用就是不易阅读…不过,还是能看得懂吧,废话不多说,先看一下lombok支持的一些常见的注解。@No

2017-11-18 18:53:25

springmvc异常统一处理

springmvc异常统一处理(ControllerAdvice注解)1、配置spring版本:[html] viewplain copyorg.springframework-version>4.1.9.RELEASEorg.springframework-version>  spring-servlet.xml,

2017-11-18 18:42:46

git 安装后的init、key、clone

这里我们就不说git的安装了,因为git的安装确实很简单而且文章也也很多,所以我们就来看看安装git后的init、往github或gitlab添加key以及从远端拉代码;一、Git安装后的本地仓库的创建在使用git的时候要清楚的知道本地仓库和远程服务,我们知道这点后再来说1、创建本地仓库再本地创建仓库是很简单的,创建一个工作文件夹然后执行git init命令这样在本地制定的文件下创建了gi...

2017-11-18 10:23:54

MySql 里的IFNULL、NULLIF和ISNULL用法

今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下:mysql中isnull,ifnull,nullif的用法如下:isnull(expr)的用法:如expr为null,那么isnull()的返回值为1,否则返回值为0。 mysql>selectisnull(1+1);->0mysql>selectisnu

2017-11-14 22:31:55

netty 服务端作为客户端跳转请求服务端

一般的请求都是从客户端发起请求到服务端,服务端接收到请求后做相应处理然后在返回给客户端相应信息,但是很多时候我们要用服务端作为客户端在发送请求到另一台服务端,这样中的这台服务器不仅是服务端也是客户端。OK 整体请求就是这样的,下面来看代码:一、客户端1、客户端引导packagecom.test3;importio.netty.bootstrap.Bootstrap;

2017-11-05 15:26:53

netty源码学习三(channel、channelHandler、channelPipeline)

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的“梦境”概念,希望大家喜欢。一层梦境:Channel实现概览在Netty里,Channel是通讯的载体,而ChannelHandler负责Channel中的逻辑处理。

2017-11-04 17:42:37

netty源码学习二(EventLoopGroup、EventLoop)

前面的一章我们学习了ServerBootstrap即引导,如果说引导是对netty的一个整体学习则EventLoopGroup、EventLoop就是具体内容的分析.EventLoopGroup、EventLoop 也是netty中比较核心的组件,下面就来看看netty的线程模型和Reactor模式1.NioEventLoopGroupnetty的程序的启动(在服务端一般是两个Nio

2017-11-04 17:20:26

netty源码学习一(Serverbootstrap引导程序)

BootStrap在netty的应用程序中负责引导服务器和客户端。netty包含了两种不同类型的引导: 1.使用服务器的ServerBootStrap,用于接受客户端的连接以及为已接受的连接创建子通道。 2.用于客户端的BootStrap,不接受新的连接,并且是在父通道类完成一些操作。ServerBootStrap的运行原理下面先看一下这两个引导类的类继

2017-10-29 10:52:47

logback高级特性使用(三)

异步记录日志注意:该功能需要高版本才能支持,如1.0.11。AsyncAppender,异步记录日志。工作原理:当LoggingEvent进入AsyncAppender后,AsyncAppender会调用appender方法,append方法中在将event填入Buffer(这里选用的数据结构为BlockingQueue)中前,会先判断当前buffer的容量以及丢弃日志特性是

2017-10-28 17:11:33

logback高级特性使用(二)

自定义Pattern模板创建自定义格式转换符有两步:1.写一个转换器类,继承ClassicConvert示例代码:packagecom.cj.log;importch.qos.logback.classic.pattern.ClassicConverter;importch.qos.logback.classic.spi.ILogging

2017-10-28 17:01:54

logback高级特性使用(一)

logback支持类似于占位符的变量替换功能,即如果输出的msg里面带有{}符号且括号中间不带其他字符,那么logback在构造LoggingEvent的时候,会用MessageFormat类来格式化msg,将{}替换成具体的参数值。示例如下:logger.info("{},it'sOK.","Hi");则输出结果如下:Hi,it'sOK.支持多JVM同时操作同一个日志

2017-10-28 16:57:59

【java-日志组件】slf4j+logback配置及详解

文本主要介绍一下slf4j+logback在java工程中的配置,面向的读者是已经对slf4j+logback有一定了解的同学,不了解的同学,请看文章末尾的相关链接。以后会写一篇介绍slf4j框架的文章,其中会说明logback与之的关系。下面咱们进入正题。一、基于maven的slf4j+logbackpom.xml配置org.slf4jslf4j-api

2017-10-28 16:15:07

使用MDC为Logback slf4 日志记录线程ID,区分每次执行的会话日志

我们先回想这样一个场景: 在Java开发中,因为业务需求肯定会输出很多日志。在出现问题时,根据输出的日志分析问题。 对于一个访问量很大的网站来说,日志的输出速度是很快的,同样的代码方法被同时调用是很正常的。 那么现在问题来了,我们如何从日志中来区分每一个会话的日志呢?就是我们发现了一个异常,如何知道在这个异常之前对应的一些列日志是什么呢?我们都知道,不管是普通后台代码执行(定时

2017-10-28 14:46:30
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!