java
文章平均质量分 74
java学习QQ1638812475
欢迎正在学习Java或者从事Java行业的伙伴,加我的QQ1638812475 交流学习
展开
-
Spring Cloud中基于Sleuth的参数透传功能探索
一.需求微服务环境,有A,B,C,D四个服务,调用关系为:A->B->C->D。用户在A的页面选择当前“语言”环境为“英文”,在某些业务场景下,其它几个服务需获取到这个“语言”信息。二.分析这个需求还是很简单的,类似于“击鼓传花”:当前服务从上一个服务中获取参数,并传给下一个服务。个人感觉基本上所有的RPC框架都会遇到这个问题,只是以前SOA架构下,服务层级比较少,将“语言”、“登陆”翻译 2018-01-29 15:39:37 · 2806 阅读 · 0 评论 -
Java设计模式(二十五):访问者模式
访问者模式(Visitor Pattern)访问者模式(Visitor Pattern):属于类的行为模式。表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式UML图Java访问者模式涉及的角色抽象访问者(Visitor)角色:为该对象结构中 ConcreteElement 的每一个类声明一个 vis翻译 2018-01-25 11:56:50 · 207 阅读 · 0 评论 -
Java设计模式(二十四):解释器模式
解释器模式(Interpreter Pattern)解释器模式(Interpreter Pattern):属于对象的行为模式。给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式UML图Java解释器模式涉及的角色抽象表达式(AbstractExpression)角色:声明一个所有的具体表达式角色都需要实现的抽象翻译 2018-01-25 11:56:01 · 213 阅读 · 0 评论 -
MyBatis之Mapper XML 文件详解-缓存配置
MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。 默认情况下是没有开启缓存的,除了局部的 session 缓存,可以增强变现而且处理循环 依赖也是必须的。要开启二级缓存,你需要在你的 SQL 映射文件中添加一行:字面上看就是这样。这个简单语句的效果如下:翻译 2018-01-08 17:16:43 · 520 阅读 · 0 评论 -
MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询
支持的 JDBC 类型为了未来的参考,MyBatis 通过包含的 jdbcType 枚举型,支持下面的 JDBC 类型。BITFLOATCHARTIMESTAMPOTHERUNDEFINEDTINYINTREALVARCHARBINARYBLOBNVARCHARSMALLINTD翻译 2018-01-08 17:15:13 · 1115 阅读 · 0 评论 -
MyBatis之Mapper XML 文件详解(二)-sql和入参
sql这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。它可以被静态地(在加载参数) 参数化. 不同的属性值通过包含的实例变化. 比如: ${alias}.id,${alias}.username,${alias}.password 这个 SQL 片段可以被包含在其他语句中,例如:select,from some_翻译 2018-01-08 17:11:32 · 299 阅读 · 0 评论 -
Java设计模式(五):代理模式
代理模式(proxy pattern)代理模式(proxy pattern):属于对象的结构型模式。为其他对象提供一种代理以控制这个对象的访问。代理模式UML图代理模式涉及的对象抽象对象(Subject):定义了目标对象和代理对象的共用接口,这样就在任何使用目标对象的地方都可以使用代理对象。目标对象(RealSubject):定义了代理对象所代表的真实实体。代理对象(P翻译 2018-01-17 11:08:37 · 170 阅读 · 0 评论 -
Java设计模式(四):装饰模式
装饰模式(decoretor pattern)装饰模式(decoretor pattern):属于对象的结构型模式。动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式UML图装饰模式涉及到的对象抽象构件对象(Component):定义一个抽象接口,以规范准备接收附翻译 2018-01-17 11:06:10 · 165 阅读 · 0 评论 -
Java设计模式(二十三):享元模式
享元模式(Flyweight Pattern)享元模式(Flyweight Pattern):属于对象的结构模式。运用共享技术有效地支持大量细粒度的对象。享元模式UML图Java享元模式涉及的角色抽象享元(Flyweight)角色:所有有具体享元类的超类或接口,通过这个接口,Flyweight 可以接受并作用于外部状态。具体享元(ConcreteFlyweight)翻译 2018-01-24 11:01:56 · 185 阅读 · 0 评论 -
Java设计模式(二十二):职责链模式
职责链模式(Chain Of Responsibility Pattern)职责链模式(Chain Of Responsibility Pattern):属于对象的行为模式。使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。职责链模式UML图Java职责链模式涉及的角色抽象翻译 2018-01-24 11:00:30 · 181 阅读 · 0 评论 -
Java设计模式(二十一):中介者模式
中介者模式(Mediator Pattern)中介者模式(Mediator Pattern):属于对象的行为模式。又叫调停者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。中介者模式UML图中介者模式涉及的角色抽象中介者(Mediator)角色:定义了同事对象到中介者对象的接口。具体中介翻译 2018-01-24 10:59:43 · 379 阅读 · 0 评论 -
Java设计模式(三):设计模式六大原则
设计模式有六大原则,分别是:单一职责原则(Single Responsibility Principle,SRP)开闭原则(Open-Closed Principle,OCP)里氏替换原则(Liskov Substitution Principle,LSP)依赖倒置原则(Dependency Inversion Principle,DIP)接口隔离原则(翻译 2018-01-16 10:48:04 · 137 阅读 · 0 评论 -
Java设计模式(三):设计模式六大原则
设计模式有六大原则,分别是:单一职责原则(Single Responsibility Principle,SRP)开闭原则(Open-Closed Principle,OCP)里氏替换原则(Liskov Substitution Principle,LSP)依赖倒置原则(Dependency Inversion Principle,DIP)接口隔离原则(翻译 2018-01-16 10:44:58 · 105 阅读 · 0 评论 -
Java设计模式(二):策略模式
策略模式(strategy pattern)策略模式(strategy pattern):属于对象的行为模式。策略模式定义了一系列的算法,并将每个算法封装起来,让他们之间可以相互转换,该模式让算法的变化,不会影响到使用算法的客户。策略模式UML图策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,翻译 2018-01-16 10:43:17 · 189 阅读 · 0 评论 -
Docker 涉密信息管理介绍(不收藏绝对会后悔)
容器正在改变我们对应用程序和基础设施的看法。无论容器内的代码量是大还是小,容器架构都会引起代码如何与硬件相互作用方式的改变 —— 它从根本上将其从基础设施中抽象出来。对于容器安全来说,在 Docker 中,容器的安全性有三个关键组成部分,它们相互作用构成本质上更安全的应用程序。构建更安全的应用程序的一个关键因素是与系统和其他应用程序进行安全通信,这通常需要证书、令牌、密码和其他类型的验证信息凭翻译 2018-01-30 21:36:03 · 929 阅读 · 0 评论 -
Spring Boot MyBatis升级篇-XML-注解-初尝试
尝试前准备:我们spring-boot-mybatis-xml这个项目的代码,复制一份出来,取名为:spring-boot-mybatis-xml-annotation,我们会发现xml的项目中,对于注解方式的都已经配置好了,所以我们直接编码测试即可,无需做任何修改。尝试1:查询所有我们新建一个Mapper类,DemoMapper2,这里使用注解的方式进行使用:Java然后翻译 2018-01-30 21:34:48 · 543 阅读 · 0 评论 -
Spring Cloud Edgware新特性:Zuul回退的改进
Spring Cloud Edgware对Hystrix回退的逻辑进行了一些改进。本文将信息探讨新旧版本的回退操作,并分析的原因及改进后的优势。Dalston及更低版本对于Dalston及更低版本,要想为Zuul提供回退,只需编写代码如下:JavaEdgware及更高版本Java分析由代码可知:Dalston及更低版本通过实现 ZuulFal翻译 2018-01-30 21:33:51 · 1491 阅读 · 0 评论 -
你一定要看的mysql explain详解
Explain简介本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。下面是使用 explain 的例子:在 select 语句之前增加 explain 关键字,MySQL 会在查询上设翻译 2018-01-25 11:57:56 · 2928 阅读 · 1 评论 -
Java设计模式(六):工厂方法模式
工厂方法模式(factory method pattern)工厂方法模式(factory method pattern):属于对象的创建型模式。定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式翻译 2018-01-18 11:12:03 · 431 阅读 · 0 评论 -
Java设计模式(七):原型模式
原型模式(prototype pattern)原型模式(prototype pattern):属于对象的创建型设计模式。用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式UML图Java原型模式涉及的角色客户角色(Client):提出创建对象的请求。抽象原型角色(Prototype):申明一个克隆自身的接口或抽象类,此角色给出所有具体原型类所需要的接口。具体原型角色(Conc翻译 2018-01-18 11:14:05 · 1994 阅读 · 0 评论 -
使用Spring Boot集成FastDFS
1、pom包配置我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。Java加入了 fastdfs-client-java包,用来调用FastDFS相关的API。2、配置文件resources目录下添加 fdfs_client.conf文件Java配置文件设置了连接的超时时间,编码格式以及t翻译 2018-01-29 15:38:39 · 513 阅读 · 0 评论 -
Spring Boot 使用SSL-HTTPS Java编程开发 2018-01-25 11:13:31
本节大纲:一、什么是SSL?二、什么是HTTPS?三、HTTPS与SSL的关系?四、Spring Boot中使用HTTPS步骤五、获取SSL证书六、将HTTP请求重定向到HTTPS(可选)七、总结接下来看下本节的内容:一、什么是SSL?SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Sec翻译 2018-01-29 15:37:40 · 269 阅读 · 0 评论 -
Spring Boot WebSocket:原理篇
一、websocket与httpWebSocket是HTML5出的协议,也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocket 其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范翻译 2018-01-28 15:44:46 · 447 阅读 · 0 评论 -
Spring Boot WebSocket:概念篇
效果展示:我们先看下最终要实现的效果【单聊+群聊】,如下图:à悟空消息:Javaà师傅消息:Javaà八戒消息:Java长连接的产生B/S结构的软件项目中有时客户端需要实时的获得服务器消息,但默认HTTP协议只支持请求响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度,因为服务器不需要翻译 2018-01-28 15:44:07 · 336 阅读 · 0 评论 -
你一定的收藏的Dubbo设计模式解析:对Spring配置标签扩展
一、dubbo是如何“插入”到spring框架中的dubbo是基于Spring进行开发的,而且扩展了Spring的XML schema和注解标签,其实这里也就是整个dubbo的切入点。dubbo除去依赖其他的第三方框架外,整个框架只有一个jar包,可谓是精致。在这个jar包的NET-INF目录下有两个文件:spring.handlers和spring.schemas。其中spring.sche翻译 2018-01-10 17:41:33 · 264 阅读 · 0 评论 -
Zookeeper 及其安装配置和启动
一、概念ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是大数据软件如Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooK翻译 2018-01-10 17:40:20 · 262 阅读 · 0 评论 -
Java设计模式(十一):观察者模式
观察者模式(observer pattern)观察者模式(observer pattern):属于对象的行为型模式。定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Lis翻译 2018-01-19 09:24:49 · 5150 阅读 · 0 评论 -
Java设计模式(十):建造者模式
建造者模式(builder pattern)建造者模式(builder pattern):属于对象的创建型模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式UML建造者模式涉及的角色抽象建造者(Builder)角色:是为创建一个 Product 对象的各个部件指定的抽象接口。此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具体建造者 (Concre翻译 2018-01-19 09:23:45 · 274 阅读 · 0 评论 -
Java设计模式(九):外观模式
外观模式(facade pattern)外观模式(facade pattern):属于对象结构模式。又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式UML图Java外观模式涉及的角色外观(Facade)角色:客户端直接调用这个角色的方法,该角色知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。子系统(Su翻译 2018-01-19 09:22:19 · 124 阅读 · 0 评论 -
Java8 几道关于流的练习题
为什么要有练习题?所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博客都会在知识点后面附上几道练习题,不会单独开一篇来说练习题。大部分题练习题来自于Richard Warburton的《Java8 函数式编程》,练习题的难度不会很难,大部分都十分的基础(可能偶尔会有一两道进阶题)翻译 2018-01-26 11:07:49 · 1058 阅读 · 0 评论 -
Spring Boot lombok安装+使用:idea篇
版本说明(1)spring boot: 1.5.8;(2)lombok:1.16.20;(3)操作系统:Mac(4)开发工具:idea ultimate 2017.2一、Lombok介绍在之前的两篇文章中已经对Lombok介绍过了,这里不过多进行陈述。二、Lombok在idea下的安装在idea下安装lombok很简单,在idea工具中就能完成了,具体操作如下(注意翻译 2018-01-26 11:07:10 · 1454 阅读 · 0 评论 -
Spring Boot WebSocket:群聊-昵称
效果展示:悟空消息:Java师傅消息:Java八戒消息:Java(1)在连接的时候,让用户输入昵称这个简单,只需要提供一个input让用户进行输入即可:Java(2)连接前的校验在用户点击连接判断用户是否输入昵称了:Java以上这些都是简单了,那问题的关键就是如何把昵称显示在聊天信息中呢?这里提供几种思路,大家可以自己开翻译 2018-01-26 11:06:27 · 408 阅读 · 0 评论 -
Jmeter+Maven+Eclipse+Jenkins接口本地自动化测试到持续化集成
背景:用Jmeter录制或者书写接口或性能测试的脚本,用Maven添加相关依赖,本地Eclipse测试通过后,放到Jenkins上执行反馈结果给测试负责人实时查看执行结果。1、环境搭建下载安装 jdk1.7或jdk1.8并配置环境变量Eclipse v4.5下载安装jenkins.rpm安装到linux或本地tomcat搭建安装jenkins.war翻译 2018-01-09 16:54:44 · 1068 阅读 · 0 评论 -
组件化系统快速应用之SpringBoot实践,这些你都了解吗?
身为Java开发人员,不可能不知道spring,spring如此强大,但它的配置却又让人觉得无比繁杂,好在spring社区也意识到了这点,推出了可以大大简化配置的SpringBoot,让Spring的使用重新变得简单,现在就让我们来学习一下SpringBoot的相关知识,文章会先介绍SpringBoot的一些主要配置,然后通过一个demo来讲解怎么使用,最后简单讲解SpringBoot自动配置的过翻译 2018-01-09 16:52:31 · 2618 阅读 · 0 评论 -
Java设计模式(八):模板方法模式
模板方法模式(template method pattern)模板方法模式(template method pattern):属于行为型模式。定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式UML图Java模板方法模式涉及的角色抽象模板(Abstract Template)角色:定义并实现了一个模板方法。这个翻译 2018-01-18 11:18:22 · 157 阅读 · 0 评论 -
Java设计模式(一):简单工厂模式
简单工厂模式(simple factory pattern)简单工厂模式(simple factory pattern):属于对象的创建方式。就是说我们考虑使用一个单独的类来处理类的实例化。例如,对于一个计算器,只需要考虑输入数字和运算符工厂就可以实例化出适合的对象计算出结果。简单工厂模式UML图Java示例代码运算类 Operation:用于计算结果。申明两个变量翻译 2018-01-15 18:00:04 · 339 阅读 · 0 评论 -
你一定的收藏的Dubbo设计模式解析:对Spring配置标签扩展
一、dubbo是如何“插入”到spring框架中的dubbo是基于Spring进行开发的,而且扩展了Spring的XML schema和注解标签,其实这里也就是整个dubbo的切入点。dubbo除去依赖其他的第三方框架外,整个框架只有一个jar包,可谓是精致。在这个jar包的NET-INF目录下有两个文件:spring.handlers和spring.schemas。其中spring.sche翻译 2018-01-15 17:58:33 · 202 阅读 · 0 评论 -
Java设计模式(二十):命令模式
命令模式(command pattern)命令模式(command pattern):属于对象的行为模式。将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。命令模式UML图Java命令模式涉及的角色客户端(Client)角色:创建一个具体命令(ConcreteCommand)对象并翻译 2018-01-23 10:57:29 · 421 阅读 · 0 评论 -
Java设计模式(十四):适配器模式
适配器模式(adapter pattern)适配器模式(adapter pattern):属于对象的结构型模式。将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式有两种类型:类适配器模式和对象适配器模式。由于类适配器模式需要多继承,而 java 不支持多继承,所以这里讨论的是对象适配器模式。适配器模式UML图翻译 2018-01-21 11:06:55 · 199 阅读 · 0 评论 -
Java设计模式(十三):状态模式
状态模式(state pattern)状态模式(state pattern):属于对象的行为型模式。又叫状态对象模式(pattern of objects for state);当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变其了类。状态模式UML图Java状态模式涉及的角色抽象状态(State)角色:定义一个接口,用以封装环境(Context)对翻译 2018-01-21 11:04:38 · 232 阅读 · 0 评论