- 博客(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
5194
原创 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
363
原创 使用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
587
原创 代码重构梳理-实践篇(下)
第五步:降低程序的依赖度设计模式的应用1、工厂模式与依赖反转原则依赖反转:面向接口编程,业务逻辑不为更底层的具体实现所耦合。 工厂模式的实质:当客户程序需要某个实现类时,则通过某个关键字(如id)询问工厂,由工厂去寻找这个类,创建它,并将它的一个实例返回给客户程序。(核心-工厂类,保证单例) 如:利用spring来配置和创建工厂2、外部接口与适配器模式-与外部系统解耦适配器的核心是接口和它的实现
2017-03-06 22:21:27
384
原创 代码重构梳理-实践篇(上)
第一步:分解大函数,抽取方法第二步:拆分大对象 大对象拆分过程-抽取类与职责驱动设计单一职责原则(SRP)与对象拆分合久必分,分久必合-类的归并第三步:提高代码的复用率第四步:发现程序的可扩展点第五步:降低程序的依赖度第六步:分层
2017-02-26 16:27:25
1196
原创 代码重构梳理-前言
对既有的代码是隐忍还是重构,对于初次尝试重构的开发人员来说总要经历一段很长时间的纠结。走出重构的第一步对每一个人来说都是一次心灵的考验,甚至有许多人总是徘徊于路口踌躇不前,但一旦跨出去了,它将成为你生命的一部分。一:修改软件的四种动机: 1、增加新功能; 2、原有功能有BUG; 3、改善原有程序的结构; 4、优化原有系统的性能。 前两种源于客户的功能需求,第四种源于客户的非功能需求。而
2017-02-26 16:17:38
491
1
原创 rocketmq-producer之发送事物消息
rocketmq支持普通消息、顺序消息,此外,还支持事物消息。实现方式是将一个大事务拆分成多个小事物异步执行,事物消息在其中起着桥梁作用。rocketmq在发送事物消息时,会先发送一个prepared消息,返回消息所在地址。然后再执行本地事物,根据事物执行结果去更新prepared消息状态。消息接收者只能消费消息集群中消息状态为已提交的消息。事物消息demo:TransactionMQProduce
2016-12-03 22:22:57
4292
原创 rocketmq-producer原理解析
Producer随机与一个NameServer建立长连接,从NameServer获取topic的最新队列情况。Producer会向提供topic服务的master建立长连接,且定时向master发送心跳。 发送消息demo:// 构造ProducerDefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");/
2016-12-03 19:40:46
2726
原创 Rocket学习小结
一:RocketMQ简介RocketMQ是分布式、队列模型的消息中间件, MetaQ 的 3.0 版本。 特点 数据可靠性 消费失败重试 严格的消息顺序 定时消息 消息查询 消息回溯 单机支持的队列数(5万) 支持push、pull两种方式消费消息 适用场景 应用解耦、流量削峰、异步处理、消息通讯二:RocketMQ安装配置安装jdk安装RocketMQ 下载安装包如al
2016-11-15 13:13:26
1598
原创 RocketMQ整理与小结
说到高性能消息中间件,第一个想到的肯定是 LinkedIn 开源的 Kafka ,虽然最初 Kafka 是为日志传输而生,但也非常适合互联网公司消息服务的应用场景,他们不要求数据实时的强一致性(事务),更多是希望达到数据的最终一致性。 RocketMQ 是 MetaQ 的 3.0 版本,而 MetaQ 最初的设计又参考了 Kafka 。MetaQ 1.x 和 MetaQ 2.x 是依赖 ZooKee
2016-11-13 22:09:30
9385
原创 浅谈分布式组件-kafka、zookeeper
接触分布式相关概念差不多有两周时间了,以前觉得其很神秘,离自己也很遥远,进而对它充满向往。如今有机会参与相关的工作让我觉得既兴奋又倍感压力。好了,切入正题,今天主要就之前学习的一些知识点:kafka、zookeeper做一下总结。 一:消息队列MQ 说到消息队列MQ,目前业界常用的有RabbitMQ、ZeroMQ、ActiveMQ、Kafka、RocketMQ。下面主要就Kafka进行展开分析总
2016-11-13 08:47:15
6341
原创 Maven使用之packing篇
项目的打包类型:pom、jar、war 项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件中维护了各模块之间的依赖和继承关系。项目模块化可以将通用的部分抽离出来,方便重用;修改一部分代码不再是build整个项目,缩短了build时间;此外各模块都有自己的pom文件,结构更清晰。使用maven进行模块划分管理,一般都会有一个父级项目,pom文件除了GAV(groupId
2016-11-07 22:39:14
18376
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人