一米sunshine
码龄8年
关注
提问 私信
  • 博客:51,306
    51,306
    总访问量
  • 13
    原创
  • 1,443,914
    排名
  • 6
    粉丝
  • 0
    铁粉

个人简介:~梅花香自苦寒来~

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2016-10-31
博客简介:

时光清浅 愿心安的博客

查看详细资料
个人成就
  • 获得46次点赞
  • 内容获得6次评论
  • 获得32次收藏
创作历程
  • 7篇
    2017年
  • 6篇
    2016年
TA的专栏
  • 后端开发工具
    3篇
  • 分布式组件
    4篇
  • 代码重构
    4篇
  • java反射
    1篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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 ·
5181 阅读 ·
3 点赞 ·
1 评论 ·
2 收藏

mybatis # $区别

MyBatis/Ibatis中#和$的区别一:#与$#{ }:解析为一个 JDBC 预编译语句(prepared statement)的参数标记符。 例如,Mapper.xml中如下的 sql 语句:select * from user where name = #{name}; 动态解析为:select * from user where name = ?; 一个 #{ } 被解析为一个参
原创
发布博客 2017.03.31 ·
357 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用JSR303和AOP简化接口开发

一:引入JSR303,使其支持自带的基本校验功能在pom.xml文件中添加相关依赖<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.3.Final</version> </dependency>
原创
发布博客 2017.03.17 ·
578 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

第三步:提高代码的复用率第四步:发现程序的可扩展点第五步:降低程序的依赖度第六步:分层
原创
发布博客 2017.02.26 ·
515 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

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

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

代码重构梳理-前言

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

rocketmq-producer之发送事物消息

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

rocketmq-producer原理解析

Producer随机与一个NameServer建立长连接,从NameServer获取topic的最新队列情况。Producer会向提供topic服务的master建立长连接,且定时向master发送心跳。 发送消息demo:// 构造ProducerDefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");/
原创
发布博客 2016.12.03 ·
2715 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

Rocket学习小结

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

RocketMQ整理与小结

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

浅谈分布式组件-kafka、zookeeper

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

Maven使用之packing篇

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