自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

真相不难

真相只有一个

  • 博客(21)
  • 收藏
  • 关注

原创 十万以上数据的两个集合进行交集,差集运算,ArrayList为什么特别慢?HashSet为什么效率如此高?

1

2019-06-11 18:20:48 4438 1

原创 centos服务器安装Jenkins教程

首先服务器需要有java环境,java -version确认jkd是否已安装。安装Jenkins,可以从官网下载jenkins.war包,通过java -jar的方式直接启动,或把war包放Tomcat,resin等web server下。这里介绍通过yum安装jenkins的过程。通过yum安装需要先添加Jenkins的repository,依次执行下面的命令:sudo wget -O /...

2018-11-26 19:04:36 611

原创 springboot项目使用gradle构建时profile的指定

springboot项目可以引用maven profile下变量,在maven打包时确定springboot的profile,那么使用gradle构建时,如何在gradle打包时指定springboot项目所使用profile文件呢?

2018-07-06 16:02:46 10771 2

原创 Do not use @ for indentation 异常

spring boot应用启动时,报了下面一个错:...Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character '@' that cannot start any token. (Do not use @ for indentatio...

2018-06-21 16:08:41 14557

原创 spring boot profile整合maven profile

spring boot支持多环境配置文件,在resources下可以定义:application.yml,application-pro.yml,application-test.yml 这样的配置文件,格式为application-xxx.yml,其中后面的xxx就是profile名称,在application.yml中定义spring.profiles.active: test,来表示使用哪个...

2018-06-21 15:45:11 1196

原创 9.RPC框架的简单实现(服务引用-Ldubbo协议)

在第七篇已经实现了ReferenceBean和rmi协议的服务引用,对于ldubbo协议来说,现在我们需要实现LdubboProtocol类doRefer方法,这个方法就是服务引用的具体实现。

2018-02-26 14:08:31 257

原创 8.RPC框架的简单实现(服务发布-Ldubbo协议)

RmiProtocol类的实现在第六篇和第七篇已经开发完了,借助了spring相关工具类。ldubbo自定义协议的实现类LdubboProtocol是接下来重点要实现的了。在第一篇文章中,我们提到dubbo框架服务端和客户端的通信使用netty框架开发,这里也是基于netty去实现服务的发布。关于I/O这里不做详细的介绍,但是我们要实现这个简单的rpc框架,了解dubbo的源码,必须得有net...

2018-02-24 17:16:25 423

原创 7.RPC框架的简单实现(服务引用-ReferenceBean实现与RMI协议)

上一篇rmi协议的服务发布已经完成,现在看一下服务引用的实现。ReferenceBean的实现同第四篇中的ServiceBean是不同的,ServiceBean是通过实现spring的InitializingBean接口,在afterPropertiesSet()方法中发布服务的。。。

2017-09-14 17:25:09 2493

原创 6.RPC框架的简单实现(服务发布-rmi协议)

通过rmi协议发布一个Java服务,使用java.rim包下的Naming.bind()方法即可,但是jdk默认rmi协议的实现需要接口类继承java.rmi.Remote,接口方法抛出RemoteException,实现类需要继承UnicastRemoteObject类比较繁琐。spring框架也提供了一套rmi协议的实现...

2017-09-12 16:22:40 523

原创 5.RPC框架的简单实现(SPI机制-ProtocolFactory)

dubbo框架中广泛使用了SPI的思想,很多dubbo源码解析的相关资料也是把基于SPI机制的dubbo内核实现作为了解dubbo源码的第一讲,dubbo源码中的ExtensionFactory、Protocol、Complier等大多数接口类都是基于SPI思想的。ldubbo这个自己实现的rpc框架也加入SPI的简单实现

2017-09-11 18:15:47 974

原创 4.RPC框架的简单实现(服务发布-ServiceBean实现)

前面介绍了ServiceBean不是一个简单的Java pojo对象,只拥有get,set方法,它需要在初始化之后执行服务发布的操作。spirng的InitializingBean接口为bean提供了定义初始化方法的方式,它只包括一个afterPropertiesSet()方法,凡是继承该接口的类,在初始化bean的时候会执行该方法

2017-09-11 15:39:44 584

原创 3.RPC框架的简单实现(解析自定义bean)

xsd文件,spring.handlers和spring.schemas文件定义好了之后,接下来就是定义自己的NamespaceHandler处理类

2017-09-11 10:58:00 955

原创 2.RPC框架的简单实现(定义自己的ldubbo命名空间)

在spring配置文件中扩展自己的xml bean配置,参考spring帮助文档的 Extensible XML authoring 部分。ldubbo框架服务端、客户端也基于spring配置文件

2017-09-08 17:59:06 1090

原创 1.RPC框架的简单实现(参考dubbo框架的基本原理)

前段时间读了读dubbo框架的源码,粗略的读了暴露服务和引用服务的具体实现,dubbo是一个成熟的rpc框架,里面的功能点和配置很多,了解整个dubbo的代码实现细节的话还真得需要不少时间。为了更快的理解dubbo,参考dubbo的基本原理,自己写了一个简单的RPC框架,实现了远程方法的调用。

2017-09-07 17:33:12 500

原创 Java md5加密实现

Java md5加密实现 md5算法是把任意一个字符串经过加密后得到一个16位的byte[]数组,也就是128位bit的串,所以md5值有2^128种可能。 2^128=340282366920938463463374607431768211456,这是非常大的一个数,md5是不可逆的,所以这是我们平时经常用到的一个加密算法,数据库存储的用户密码很多是md5算法加密后的

2017-08-10 18:06:57 827

原创 maven web项目执行install异常:org.apache.maven.plugin.war.util.WebappStructure

[INFO] Packaging webapp[INFO] ------------------------------------------------------------------------[ERROR] FATAL ERROR[INFO] ----------------------------------------------------------------...

2014-08-06 11:55:02 4050

linux下的断点下载工具axel

玩ubuntu系统有段时间了,喜欢chrome浏览器,一般下载东西都是用google搜索后用浏览器下载,速度还可以,有时遇到一些国外的文件镜像地址下载一些文件的时候速度很慢,几十kb,一次下载个1G的iso文件,20来分钟了,才下载几十M,心想这要下到什么时候。几个小时下载不完,还不能关chrome了,关了化就白下载了~,google了一下,找到一个工具axel。安装先:sudo apt...

2014-05-04 17:16:03 340

远程执行服务器端命令程序(jsch实现)

        通过jsch可以实现基于sftp协议的文件传输,使用的是ChannelSftp类,如果要在程序中实现启动服务器的一个脚本,执行某个系统命令的话,就需要用到另一个channel类了,就是ChannelExec类。        如果项目采用maven构建的话,引入<dependency> <groupId>com.jcraft</...

2014-04-04 14:42:27 620

CentOS服务器resin显示html页面中文乱码

发布到服务器的项目,html页面中文显示乱码。在本地的ubuntu系统和windows系统,jetty和resin都能正确显示,上传到centos的服务器下的resin中文不能显示,google了一下,有人说修改app-default.xml下的<servlet servlet-name="resin-file" servlet-class="com.cauch...

2014-01-17 10:17:07 275

原创 基于sftp协议的文件传输(jsch实现)

       文件传输在开发中还是经常会遇到的,通常情况会采用ftp协议,java实现ftp协议传输的工具还是有挺多的选择的,比如apache的commons-net工具包。要想程序实现sftp协议或ssh协议的传输文件,也是很容易的,这时用到的就是jcraft的Jsch工具包了。       如果项目采用maven构建的话,引入 <dependency> &...

2014-01-03 17:27:47 505

原创 Thrift初步了解

Thrift是一个可伸缩的跨语言的服务开发框架,对它的介绍就不google再复制了。当我们在做web开发时,前端可能采用php,python,ruby等脚本语言做用户的交互页面,那业务和数据库的部分不少就用Java来开发了,毕竟做Java开发的程序员的数量还是占大多数的。这时,我们网站或系统的架构就可以页面用php写,业务程序用Java来写(对web开发都熟悉的mvc来说,就是把control...

2013-11-05 18:10:17 326

空空如也

空空如也

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

TA关注的人

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