自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 java 反射获取类中所有的属性(含父类)

直接上代码public static List<Field> getFieldList(Class<?> clazz){ if(null == clazz){ return null; } List<Field> fieldList = new LinkedList<Field>(); Field[] fields = clazz.getDeclare

2017-04-05 15:22:13 5079 1

原创 mybatis # $区别

MyBatis/Ibatis中#和$的区别一:#与$#{ }:解析为一个 JDBC 预编译语句(prepared statement)的参数标记符。 例如,Mapper.xml中如下的 sql 语句:select * from user where name = #{name}; 动态解析为:select * from user where name = ?; 一个 #{ } 被解析为一个参

2017-03-31 15:14:28 333

原创 使用JSR303和AOP简化接口开发

一:引入JSR303,使其支持自带的基本校验功能在pom.xml文件中添加相关依赖<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.3.Final</version> </dependency>

2017-03-17 16:49:58 521

原创 代码重构梳理-实践篇(下)

第五步:降低程序的依赖度设计模式的应用1、工厂模式与依赖反转原则依赖反转:面向接口编程,业务逻辑不为更底层的具体实现所耦合。 工厂模式的实质:当客户程序需要某个实现类时,则通过某个关键字(如id)询问工厂,由工厂去寻找这个类,创建它,并将它的一个实例返回给客户程序。(核心-工厂类,保证单例) 如:利用spring来配置和创建工厂2、外部接口与适配器模式-与外部系统解耦适配器的核心是接口和它的实现

2017-03-06 22:21:27 324

原创 代码重构梳理-实践篇(中)

第三步:提高代码的复用率第四步:发现程序的可扩展点第五步:降低程序的依赖度第六步:分层

2017-02-26 21:51:29 435

原创 代码重构梳理-实践篇(上)

第一步:分解大函数,抽取方法第二步:拆分大对象 大对象拆分过程-抽取类与职责驱动设计单一职责原则(SRP)与对象拆分合久必分,分久必合-类的归并第三步:提高代码的复用率第四步:发现程序的可扩展点第五步:降低程序的依赖度第六步:分层

2017-02-26 16:27:25 1045

原创 代码重构梳理-前言

对既有的代码是隐忍还是重构,对于初次尝试重构的开发人员来说总要经历一段很长时间的纠结。走出重构的第一步对每一个人来说都是一次心灵的考验,甚至有许多人总是徘徊于路口踌躇不前,但一旦跨出去了,它将成为你生命的一部分。一:修改软件的四种动机: 1、增加新功能; 2、原有功能有BUG; 3、改善原有程序的结构; 4、优化原有系统的性能。   前两种源于客户的功能需求,第四种源于客户的非功能需求。而

2017-02-26 16:17:38 461 1

原创 rocketmq-producer之发送事物消息

rocketmq支持普通消息、顺序消息,此外,还支持事物消息。实现方式是将一个大事务拆分成多个小事物异步执行,事物消息在其中起着桥梁作用。rocketmq在发送事物消息时,会先发送一个prepared消息,返回消息所在地址。然后再执行本地事物,根据事物执行结果去更新prepared消息状态。消息接收者只能消费消息集群中消息状态为已提交的消息。事物消息demo:TransactionMQProduce

2016-12-03 22:22:57 4236

原创 rocketmq-producer原理解析

Producer随机与一个NameServer建立长连接,从NameServer获取topic的最新队列情况。Producer会向提供topic服务的master建立长连接,且定时向master发送心跳。 发送消息demo:// 构造ProducerDefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");/

2016-12-03 19:40:46 2665

原创 Rocket学习小结

一:RocketMQ简介RocketMQ是分布式、队列模型的消息中间件, MetaQ 的 3.0 版本。 特点 数据可靠性 消费失败重试 严格的消息顺序 定时消息 消息查询 消息回溯 单机支持的队列数(5万) 支持push、pull两种方式消费消息 适用场景 应用解耦、流量削峰、异步处理、消息通讯二:RocketMQ安装配置安装jdk安装RocketMQ 下载安装包如al

2016-11-15 13:13:26 1555

原创 RocketMQ整理与小结

说到高性能消息中间件,第一个想到的肯定是 LinkedIn 开源的 Kafka ,虽然最初 Kafka 是为日志传输而生,但也非常适合互联网公司消息服务的应用场景,他们不要求数据实时的强一致性(事务),更多是希望达到数据的最终一致性。 RocketMQ 是 MetaQ 的 3.0 版本,而 MetaQ 最初的设计又参考了 Kafka 。MetaQ 1.x 和 MetaQ 2.x 是依赖 ZooKee

2016-11-13 22:09:30 9329

原创 浅谈分布式组件-kafka、zookeeper

接触分布式相关概念差不多有两周时间了,以前觉得其很神秘,离自己也很遥远,进而对它充满向往。如今有机会参与相关的工作让我觉得既兴奋又倍感压力。好了,切入正题,今天主要就之前学习的一些知识点:kafka、zookeeper做一下总结。 一:消息队列MQ 说到消息队列MQ,目前业界常用的有RabbitMQ、ZeroMQ、ActiveMQ、Kafka、RocketMQ。下面主要就Kafka进行展开分析总

2016-11-13 08:47:15 6283

原创 Maven使用之packing篇

项目的打包类型:pom、jar、war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系。项目模块化可以将通用的部分抽离出来,方便重用;修改一部分代码不再是build整个项目,缩短了build时间;此外各模块都有自己的pom文件,结构更清晰。使用maven进行模块划分管理,一般都会有一个父级项目,pom文件除了GAV(groupId

2016-11-07 22:39:14 18169 4

空空如也

空空如也

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

TA关注的人

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