- 博客(23)
- 资源 (7)
- 收藏
- 关注
原创 策略模式
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构。 这个模式涉及到三个角色: ● 环境(Context)角色:持有一个Strategy的引用
2017-11-02 22:16:23
302
原创 springcloud feign远程调用熔断详解
最近学习springcloud搭建微服务,各个模块单元之间要互相进行调用。博主原有是通过httpclient的方式进行调用,但是不得不每次都需要暴露url进行调用,feign提供本地调用的方式,不需要暴露url,t提供类似本地调用实现,并且配合hystrix熔断策略进行使用。1.maven添加包引用 org.springframew
2017-10-21 22:10:11
6926
1
原创 for循环failfast结果
晚上看了下ArrayList fail-fast机制,测试了几个例子,碰到一些趣事记录下例子1:public class Test { public static void main(String[] args){ List list = new ArrayList(); list.add("1"); list.add("2");
2017-10-17 22:05:46
604
转载 组合模式(Composite)
组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图package composite;import java.util.Enumeration;import java.util.Vector;/** * Created by hmm on 2017/10/16. */public class TreeNode { private Str
2017-10-16 22:45:48
313
原创 springboot实现rabbitmq
最近学习springboot,想给项目添加rabbitmq进行实现,所以按照spring xml之前的文件重新配置了一边,毕竟springboot提倡代码优于配置。安装好rabbitmq后访问http://localhost:15672 用默认的账户:guest和密码:guest即可以登录1.本次测试结构图属性文件application.propterties配置如下sprin
2017-09-01 16:30:25
7505
1
原创 elasticsearch sort评分
根据项目需求需要对搜索词进行IK分词后,然后按照是否可售卖>是否推荐>发布日期进行排序,如下所示BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();boolQueryBuilder.must(QueryBuilders.multiMatchQuery("酒店","主标题","副标题"));SearchRequestBu
2017-08-08 18:21:14
5844
原创 jenkins远程服务器发布
1.在已经配置好的jenkins下,进入系统管理-》系统设置-》publish over SSH添加新的目标服务器,可以通过用户名密码或者公匙的方式进行配置2.在GitHub project那里填写你的项目访问路径,类似于:http://xxx,在源码管理Git上填写项目地址,类似于git@code.xxx.git,如果一个文件夹下有多个项目,打包的时候肯定是想打其中某一个项目的包,可以在Ad
2017-07-28 18:07:54
675
原创 elasticsearch 东八区问题
搭建ELK环境导入的数据发现,@timestamp时间永远比nginx日志里面的文件记录的时间少了8小时,比如日志文件里面一行记录,设置的字段时间为2017-06-22 09:33:26,但是导入到es里面时间变成"@timestamp": "2017-06-22T01:33:26.000Z",少了整整8个小时,但是kibana显示图表的时候却是没有。后来查资料知道这是es设置的东八区问题,kib
2017-07-03 14:18:38
7470
2
转载 桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:
2017-06-07 16:08:32
263
转载 外观模式(Facade)
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)public class CPU { public void startup(){ System
2017-06-07 15:58:41
233
转载 代理模式(Proxy)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。先来看看关系图:public interface Sour
2017-06-07 15:54:53
356
转载 装饰模式(Decorator)
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void method();
2017-06-05 18:18:57
237
转载 适配器模式(Adapter)
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展到Targetable里,看代码:
2017-06-05 18:07:39
206
转载 原型模式(Prototype)
很简单,一个原型类,只需要实现Cloneable接口,覆写clone方法,此处clone方法可以改成任意的名称,因为Cloneable接口是个空接口,你可以任意定义实现类的方法名,如cloneA或者cloneB,因为此处的重点是super.clone()这句话,super.clone()调用的是Object的clone()方法,而在Object类中,clone()是native的,具体怎么实现,我
2017-06-05 17:51:34
243
转载 建造者模式(Builder)
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下:public class Builder {
2017-06-05 17:18:51
331
原创 elasticsearch5.3.0+kibana5.3.0+logstash5.3.0搜索windows环境搭建
ELK是ElasticSearch、Logstash、Kibana三个应用的缩写。 ElasticSearch简称ES,主要用来存储和检索数据。Logstash主要用来往ES中写入数据。Kibana主要用来展示数据。
2017-05-03 13:58:27
2776
1
原创 linux+jenkins+maven+git+tomat(多个节点)环境搭建
linux+jenkins+maven+git+tomat(多个节点)环境搭建
2017-04-06 17:29:25
722
mod_wl.so.rar
2015-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人