- 博客(10)
- 收藏
- 关注
原创 springboot启动源码详解
学习spring这个框架,我们总是有种感觉,会用但是不懂,“会用”是因为spring的框架利用约定大于配置的原则帮我们封装好了所有的启动配置类,这样我们使用起来的入门门槛就比较低了,只要照着官方的文档配置,一般都不会有问题,“不懂”是因为我们不知道他的底层到底是怎么实现的,有种雾里看花的感觉,一旦我们想拓展下spring的框架,就无从下手了, spring作为一个优秀的开源框架,我们很有必要去探究...
2018-07-31 16:52:15 394
原创 spring的aop的源码解析
spring中最重要的概念有2个,一个是IOC(inverse of control)和aop(面向切面编程),今天我们来聊聊aop面向切面编程;基础概念这里就不做介绍了,今天我们主要来说说aop的实现,先来一个简单的例子:public interface Dao { public void insert(); public void select();}pub...
2018-07-27 14:58:15 206
原创 java设计模式之命令模式
命令模式就是把命令的发起者和命令的执行者进行解耦,发送命令的不用知道具体执行命令的对象;看下面一个例子,战场上将军要发命令了,比如他要找通讯兵搭建电报台,作为将军他肯定不会亲自找来通讯兵,命令他去搭建电报台,他只需大喊一声,我要打电话,通讯兵听到这个命令后,自然会去搭建电报台,将军无需知道是谁去搭建电报台,他只需要发送命令就可以了,这样就实现了命令的发起者和命令的执行者实现了解耦;这里有三个对...
2018-07-20 09:43:02 143
原创 浅谈数据库的隔离级别
数据库的隔离级别指的是多个用户操作统一个数据库的同一张表时,相互影响的程度大小,数据库的隔离级别越高,数据库的相互影响的风险也就越小,但是对应的数据库的运行效率也就越低,数据库总共有四种隔离级别,下面一一介绍,介绍隔离级别之前,先来介绍数据库操作可能出现的几个问题;1、脏读:脏读是在一个事物中读取到了别人未提交的数据,例如有2个事物A和B,A修改了一条记录但是没有提交,此时B读取到了A修改的这条没...
2018-07-13 18:18:33 241
原创 分布式锁的几种实现方式
现在的微服务系统,由于系统都是由多个微服务组成的,相比较于传统的应用系统,锁的实现就变的复杂了很多,单体应用的锁也不适用与分布式系统,下面就介绍几种分布式锁的实现方式,常见的分布式锁的实现方式有数据库分布式锁,redis分布式锁,zookeeper分布式锁;一、数据库分布式锁:1、利用数据库记录的唯一性实现分布式锁:新建一张表locks,method_name字段代表要锁住的方法名,他是一个uni...
2018-07-10 11:13:36 442 1
原创 slf4j+log4j输出日志
log4j是一个日志输出的具体实现,而slf4j是一个日志输出框架的api接口,是一个规范;示例:引入maven依赖:<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7...
2018-07-09 18:00:21 905
原创 利用Runtime.getRuntime().addShutdownHook添加钩子程序,做好程序退出前的打扫工作
Runtime.getRuntime().addShutdownHook钩子程序的作用是什么?一般程序自然关闭时可能需要做一些打扫的工作,比如资源的释放啊、告诉外部系统程序要关闭了啊等等一系列的操作,这时候只要通过Runtime.getRuntime().addShutdownHook,就可以简单的添加一个钩子,然后实现这些功能;简单的例子:public class TestHook { ...
2018-07-06 13:56:31 632
原创 java设计模式之Facade模式
介绍外观模式之前,首先让我们来看下面的例子:假设我们现有一个对外接口FacadeService,里面有一个对外的方法a();public interface FacadeService { public void a();//这个方法是给外部调用的}他有一个实现类FacadeServiceImpl,他实现了FacadeService接口的a方法,同时又新增了一个自己的供内部调用的方法b...
2018-07-05 14:14:17 5062 1
原创 springCloud整合RabbitMQ实现消息中间件
什么是RabbitMQ?RabbitMQ是一个消息中间件,是一个实现了AMQP(高级消息队列协议)的开源消息代理软件,同类的产品还有kafka,rocketMQ,但是目前springcloud只集成了RabbitMQ和kafka,他的作用就是实现系统之间消息传递的解耦,对一些实时性要求不是很高的服务或者并发很高的系统来说是一个不错的选择,同时因为RabbitMQ是以AMQP协议实现的,所以支持...
2018-07-04 11:06:52 36002 7
原创 springCloud中分布式配置中心config运用
一、springCloud能做什么?没有springCloud前,传统的服务配置文件都是配置在项目里面的,例如resource目录下面的application.yml或者application.properties文件,这种配置文件的局限性是修改起来比较麻烦,要重新打包发布并且重启服务,这些缺点就是springCloud的优点,1、配置文件和项目分离,配置在git上或者svn上;2、配置文件修...
2018-07-03 11:18:43 4102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人