自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

啊呆的博客

太多的借口,太多的理由。

  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 简单工厂+策略模式在工作中的运用

1.好久没写博客了,竟然有人给我点赞和关注我。在这里结合最近工作做用的设计模式 分享一下简单工厂模式+策略模式在工作中的实际运用。场景可能如下:假设我们要写一个放款的接口,对接的资金方有华夏银行、晋中银行、南京银行等资金方。每个资金方放款的流程、实现的逻辑、上送的参数等可能不相同,但在我们业务的主体类放款逻辑是一样的,只是放款的实现不同而已。通常的做法是使用if(南京银行) 写南京银行的业务逻辑...

2019-04-25 00:10:10 1487

原创 CopyOnWriteArrayList实现原理

1.CopyOnWrite容器即写时复制的容器。当我们新添加一个元素到容器时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读和写不同的容器...

2018-08-10 10:03:39 593

原创 ThreadLocal实现原理

1.ThreadLocal可称为线程局部变量or本地线程变量,该类的作用是为每个线程都创建一个变量副本, 每个线程都可以修改自己所拥有的变量副本, 而不会影响其他线程的副本. 其实这也是解决线程安全的问题的一种方法。2.变量副本是什么时候“复制”到threadlocal中的呢?这里“复制”两个字用的很不专业。准确的说,应该是,变量副本【每个线程中保存的那个map中的变量】是怎么声明和初始化的?...

2018-08-08 18:03:22 239

原创 springcould-eureka 注册中心

1.创建父工程<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/...

2018-07-30 11:57:21 423

原创 springboot

点击打开链接

2018-07-12 17:04:54 146

转载 nio

点击打开链接

2018-07-06 11:26:35 126

转载 mysql优化

1.mysql优化 点击打开链接

2018-07-06 09:47:13 114

原创 dubbo官网

1.dubbo官网 点击打开链接

2018-07-04 09:54:11 1783

转载 ThreadPoolExecutor使用详解

1.ThreadPoolExecutor使用详解 点击打开链接

2018-07-04 08:34:13 162

原创 LinkedBlockingQueue实现原理

1.LinkedBlockingQueue实现原理:源码分析如下public class LinkedBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { private static final long serial...

2018-07-03 09:05:35 2199

转载 并发容器之CopyOnWriteArrayList

1.并发容器之CopyOnWriteArrayList 点击打开链接

2018-07-02 18:07:23 145

原创 ArrayBlockingQueue实现原理

1.ArrayBlockingQueue底层实现是通过数组来实现的,按照先进先出的原则,通过ReentrantLock lock 重入锁来锁住当前竞争资源,使用Condition notEmpty,Condition notFull来实现生产者-消费者模式(通知模式)。下面ArrayBlockingQueue添加和取出元素的源码可以看做生产者-消费者模式。public class ArrayBlo...

2018-07-02 09:55:31 1483

原创 InitializingBean,FactoryBean接口在spring源码中的使用代码片段

1.InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法, 凡是继承该接口的类,在初始化bean的时候会执行该方法. 该方法将在所有的属性被初始化后调用,但是会在init前调用。2.在spring-orm.jar中的SqlMapClientFactoryBean类就使用到InitializingBean接...

2018-06-29 10:18:10 524

转载 Spring Bean的生命周期

1.Spring Bean的生命周期 点击打开链接 点击打开链接

2018-06-29 08:57:03 308

转载 InitializingBean接口和BeanPostProcessor接口

1.可用来修改bean对象的BeanPostProcessor 点击打开链接2.InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,      凡是继承该接口的类,在初始化bean的时候会执行该方法.   该方法将在所有的属性被初始化后调用,但是会在init前调用。...

2018-06-29 08:53:22 936

转载 spring 中 isolation 和 propagation 详解

1.spring 中 isolation 和 propagation 详解 点击打开链接

2018-06-28 15:42:29 850

转载 activemq 三种消息监听方式

1.activemq 消息监听的三种方式。点击打开链接

2018-06-28 14:45:48 11867

转载 activemq发布订阅模式

1.activemq 通信模式 。 点击打开链接

2018-06-28 14:44:39 232

转载 Activemq消息确认机制

1.消息的确认机制详解。点击打开链接2.消息签收模式和持久化模式。点击打开链接3.ActiveMQ的设置消息时长,事务,确认机制 ,持久化。点击打开链接

2018-06-28 10:05:49 2329

转载 ibatis 批量插入oracle 数据库

<insert id="insertintoragroupra" parameterClass="map"> insert all <iterate conjunction=" " property="ragrouppreinsert"> into t_user (ISSUER_CODE, ISSUER_NAME,CARD_NO_LEN) val

2018-06-22 18:33:38 934

转载 Zookeeper分布式锁

点击打开链接

2018-06-08 17:22:47 120

转载 HashMap实现原理

HashMap实现

2018-06-08 16:09:25 82

转载 mybatis二级缓存

Mybatis二级缓存

2018-06-07 11:45:23 90

转载 多线程

多线程幕课网

2018-06-06 11:24:29 111

原创 js金额四舍五入格式化

js代码: function number_format(number, decimals, dec_point, thousands_sep) { /* * 参数说明: * number:要格式化的数字 * decimals:保留几位小数 * dec_point:小数点符号 * th...

2018-05-29 10:50:08 1359

原创 使用线程池进行轮询重发机制

1.可以使用线程池来进行轮询重发机制,比如在消息推送,发送邮件,充值提现状的时候,可以使用线程池去轮询发送信息。比如:充值的时候浦发的他行卡充值,充值状态不是立即返回,需要人工的去查询回来,而充值的状态查询不是时时的将结果返回的。可能一分钟,五分钟,十五分钟其状态才是成功的。如果需求需要近可能快的将状态查询回来可以使用线程池去轮询将结果查询回来。在比如,发送极光推送/邮件,当消息推送失败的时候,如

2018-01-21 18:16:05 5497

原创 apache模板引擎结合spring框架的简单使用(org.apache.velocity)

1.org.apache.velocity模板引擎可以用在发送短信,极光推送,邮件等业务场景中。因为这些业务都有特殊的模板内容。比如app在用户生日时,会推送一条信息给用户,格式如下:尊敬的XXX客户,祝您生日快乐。可变的是用户的姓名,不变的是模板内容。像上诉的业务场景,可以使用该模板引擎。代码:          4.1.5.RELEASE              

2018-01-20 11:18:41 9405 2

原创 启动一个异步线程去执行一个任务

1.业务场景: 浦发银行充值接口,他行卡充值不是实时将充值结果返回的,需要我们自己去手动去查。银行充值接口实现业务都是预计2小时到账,但如果需求修改发送充值接口后,立马去调用银行提供的状态查询接口,将状态查询回来时,需要启动一个异步线程将结果查询回来.代码编辑如下:<beans xmlns="http://www.springframework.org/schema/beans" xm

2018-01-19 21:54:48 11465

转载 join(),ReentrantLock结合Condition的await(),signal()的使用

1.join的使用点击打开链接2.Condition的使用点击打开链接

2017-12-04 21:29:47 440

原创 线程池使用

关于如何使用ExecutorService的submit方法处理业务的一些疑问?

2017-12-02 23:14:02 212

原创 ZooKeeper学习之zookeeper的ACL(AUTH)

1.如果学想学习Zookeeper的watcher Api请点击这里:Watcher事件类型和ZK状态2.Zookeeper的ACL(AUTH)介绍:zookeeper的ACL(AUTH)ACL(Access Control List),Zookeeper作为一个分布式协调框架,其内部存储的都是一些关于分布式系统运行时状态的元数据,尤其是设计到一些分布式锁,Master选举和协调等应用

2017-09-13 01:23:22 7515 2

原创 Zookeeper学习之Watcher事件类型和ZK状态

zookeeper:Watcher、ZK状态,事件类型(一)zookeeper有watch事件,是一次性触发的,当watch监视的数据发生变化时,通知设置了该watch的client.即watcher.同样:其watcher是监听数据发送了某些变化,那就一定会有对应的事件类型和状态类型。 事件类型:(znode节点相关的) EventType:NodeCreated //节点创建 EventType:NodeDataChanged //节点的数据变更

2017-09-11 01:52:23 7413

原创 Zookeeper学习之源生API的使用(java与shell操作zookeeper)。

本文主要的内容有:zookeeper源生api的方法详解,使用shell、java代码对zookeeper进行操作。java代码操作zookeeper的目的主要是为了练习zookeeper-3.4.5.jar源生api的使用,练习的方法主要有,create,delete,setData,getData等方法。在使用java代码对zookeeper-3.4.5进行操作时,由于源生的api不支持删除根节点,所有自己新添了一些方法:比如递归的创建子节点、删除根节点等方法。

2017-09-10 15:01:58 965

原创 Zookeeper学习之集群环境搭建

本文的内容主要是在192.168.110.135,192.168.110.136,192.168.110.137三台服务器,进行zookeeper集群环境搭建。1.相关运行环境。linux环境(CentOS-6.4-x86_64-bin-DVD1)、jdk-7u67-linux-x64.tar.gz、zookeeper-3.4.5.tar.gz。服务地址:192.168.110.135,192.168.110.136,192.168.110.137。2.使用root用户登录,先将/usr/local

2017-09-10 11:24:21 254

zookeepr学习相关软

里面包含关于zookeeper学习需要的软件,如:zookeeper-3.4.5.tar.gz、zookeeper-3.4.5.jar、zkclient-0.1.jar、curator-client-2.4.2等相关jar包

2017-09-10

空空如也

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

TA关注的人

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