MoDou Blog

Thinking will not overcome fear but action will.

设计模式——责任链模式.md

设计模式——责任链模式.md

设计模式——责任链模式 使多个对象都有机会处理请求,从而避免了请求发送者和接受者的耦合关系。将这些对象连成一条链,并且沿着这条链传递该请求,直到有对象处理它为止。 从字面意思可以理解,责任链模式重点在链上。只要符合相应的处理逻辑的就进去处理,不然一直传递下去。 所以我们可以得出责任链的通用类图。重点在于每一个链节点的表示。所以需要先抽象出来一个链节点。 其实在程序设计...

设计模式——观察者模式.md

设计模式——观察者模式.md

设计模式——观察者模式 观察者模式又称之为发布-订阅模式:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并且被自动的更新。 在日常生活中我们也会碰到许多的观察者模式的例子。例如微信的订阅推送、听收音机、看直播、电脑中的文件系统。所以根据这些实际例子我们不难推导出其实在观察者模式中,我们可以分为观察者和被观察者两个角色。用类图表示如下 ...

验证ArrayList插入同样数据使用指定容量和默认容量的效率

ArrayList

验证ArrayList插入同样数据使用指定容量和默认容量的效率 之前在研究ArrayList源码的时候看到过一篇文章Java 8 容器源码-ArrayList里面说当ArrayList在进行插入的时候,如果容量不够那么就会进行自动扩容,扩容大小是现有容量的1.5倍,具体代码可以参考下面。 此处的默认容量是指当构建空的ArrayList构造函数时给分配的默认数组容量大小,为10。 ...

自定义Docker容器镜像并将其上传到DockerHub中

自定义Docker容器镜像并将其上传到DockerHub中

自定义Docker容器镜像并将其上传到DockerHub中 Docker从2013年发布至今,一直是广受瞩目,所以我们或多或少也应该了解一些Docker的技术原理,而学习一项技术有了兴趣才能更好的让你持续学习下去。如果让你体会到Docker的神奇之处那么兴趣或许会大一点,接下来我们就先从自定义一个自己的Docker容器镜像来开启学习Docker的第一步。 自定义Docker容器镜像 ...

不学无数——徒手撸一个简单的IOC

徒手撸一个简单的IOC

徒手撸一个简单的IOC Spring框架中最经典的两个就是IOC和AOP,其中IOC(Inversion of Control)是什么呢?控制反转,简单来说就是将控制实体Bean的动作交给了Spring容器进行管理。再简单点来说就是例如之前想用一个类,必须new一个,但是使用了Spring那么直接用@Autowired注解或者用xml配置的方式就能直接获得此对象,而且你也不用管它的生命周期...

不学无数——Mysql查询带树状结构的信息 Gradle多项目工程

Mysql查询带树状结构的信息 Gradle多项目工程

Mysql查询带树状结构的信息 在Oracle中有函数应用直接能够查询出树状的树状结构信息,例如有下面树状结构的组织成员架构,那么如果我们想查其中一个节点下的所有节点信息,在Oracle中可以直接用下面的语法可以进行直接查询。 START WITH CONNECT BY PRIOR 但是在Mysql中是没有这个语法的,而如果你也是想要查询这样的数据结构信息该怎么做呢?我们可以自定...

不学无数——徒手撸一个简单的RPC框架

徒手撸一个简单的RPC框架

徒手撸一个简单的RPC框架 之前在牛逼哄哄的 RPC 框架,底层到底什么原理得知了RPC(远程过程调用)简单来说就是调用远程的服务就像调用本地方法一样,其中用到的知识有序列化和反序列化、动态代理、网络传输、动态加载、反射这些知识点。发现这些知识都了解一些。所以就想着试试自己实现一个简单的RPC框架,即巩固了基础的知识,也能更加深入的了解RPC原理。当然一个完整的RPC框架包含了许多的功能,...

不学无数——使用IDEA创建SpringBoot Gradle多项目工程

使用IDEA创建SpringBoot Gradle多项目工程

使用IDEA创建SpringBoot Gradle多项目工程 最近想用Springboot做一个项目练手,但是发现在一个项目中运行两个Springboot的工程不会创建,在网上查了一些资料,记录一下创建多项目工程的步骤 1. 点击Idea下的File新建一个Project 2. 由于使用的Gradle,所以此处选择Gradle项目创建 3. GroupId可以不用填写,Art...

不学无数——Spring Cloud 中使用Feign解决参数注解无法继承的问题

Spring Cloud 中使用Feign解决参数注解无法继承的问题

Spring Cloud 中使用Feign解决参数注解无法继承的问题 在使用Feign的时候,通常先写一个接口类,然后再写实现类,根据官网的例子接下来编写一个简单的Feign的请求例子 @FeignClient("spring-cloud-eureka") public interface FeignDemoApi { @RequestMapping("/testFeign")...

不学无数——Feign源码解析——执行过程

Feign源码解析——执行过程

Feign源码解析——执行过程 在上一篇Feign源码解析——初始化流程中我们从注解为起点介绍了Feign是如何进行初始化参数、将Bean注入到Spring容器中的。接下来我们就介绍Feign是如何开始执行的。 回顾 在上一篇中我们了解到了Feign将自身的参数注入到Spring容器中是分两种类型进行注入的。 FeignClientSpecification :主要为名字和Co...