自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 替换Spring Boot 的EnableCaching注解

SpringBoot 中可使用@Cacheable注解来更方便的使用redis,这个注解是通过拦截器工作的,使用了@Cacheable的方法执行时,执行到CglibAopProxy.java中的DynamicAdvisedInterceptor.intercept方法中如下图...

2017-07-26 19:06:00 442

转载 一段业务代码的重构过程

最近review代码,然后带着程序员重构了一段,发现语法方面居然花了不少时间,然后感觉这种情况还是挺典型的,于是记录一下,下次就不用从语法教起了。 首先是review的时候看到了这样一段代码(命名都被我改掉了,也只改了命名): String list = "...

2017-06-27 15:36:00 246

转载 数学笔记(一)

数学是门神奇的学科,可以轻松把一些很难再优化的算法由O(n)直接变为O(1),最近因为很多东西需要一些比较深的数学知识,然而发现不把初高中的找回来难以入门,所以在从头学数学,以下是学习笔记,希望能对已经发现如何使用数学的同学有所帮助。 因为是最开始的部分,所以还是很...

2017-06-25 09:57:00 146

转载 Spring事务执行过程

  先说一下启动过程中的几个点:   加载配置文件:   AbstractAutowireCapableBeanFactory.doCreateBean --> initializeBean --> applyBeanPostProcessorsAfterInitial...

2017-05-26 20:03:00 162

转载 mysql分表分库选型

三个方向: 一、应用中自己实现,可直连数据库,自己实现因目前使用的Mybatis框架可以使用两种做法: 1、在SQL中直接分表逻辑,我查了一下代码中的sql,发现join的千姿百态,不大动这些sql这事基本不现实,优点是定制化,针对性比较高,性能方面损耗比较低,调试调优简单,但是扩展性要差...

2017-05-26 20:03:00 670

转载 dubbox的provider端嵌套调用问题

  今天遇到了一个问题,查了半天。。。,情况是这样的,我用的是dubbox,想做一个精简的全链路跟踪,一个消费者通过dubbox调用一个Service, service 里另外调用了两个service:   A服务被调用时,通过dubbo的Filter接收了一个参数,这个参数是附加...

2017-05-26 20:03:00 179

转载 Spring Boot启动过程(五):Springboot内嵌Tomcat对象的start

  标题和上一篇很像,所以特别强调一下,这个是Tomcat对象的。   从TomcatEmbeddedServletContainer的this.tomcat.start()开始,主要是利用LifecycleBase对这一套容器(engine,host,context及wrapper)进行启...

2017-05-26 20:01:00 128

转载 Spring Boot启动过程(三)

  我已经很精简了,两篇(Spring Boot启动过程(一)、pring Boot启动过程(二))依然没写完,接着来。   refreshContext之后的方法是afterRefresh,这名字起的真...好。afterRefresh方法内只调用了callRunners一个方法,这个方法...

2017-05-26 20:01:00 96

转载 Spring Boot启动过程(六):内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动...

  看代码有助于线上出现预料之外的事的时候,不至于心慌。。。   StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程中,它的start: // Start our child contain...

2017-05-26 20:01:00 206

转载 Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动

  之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,我用的是默认的Tomcat。 private void createEmbeddedServletContainer() { ...

2017-05-26 20:01:00 192

转载 Spring Boot启动过程(二)

  书接上篇   该说refreshContext(context)了,首先是判断context是否是AbstractApplicationContext派生类的实例,之后调用了强转为AbstractApplicationContext类型并调用它的refresh方法。由于Annotatio...

2017-05-26 20:01:00 124

转载 Spring Boot启动过程(七):Connector初始化

  Connector实例的创建已经在Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动中提到了:      Connector是LifecycleMBeanBase的子类,先是设置LifecycleState为LifecycleState.NEW,构造首先...

2017-05-26 20:01:00 491

转载 Spring Boot 声明式事务结合相关拦截器

  我这项目的读写分离方式在使用ThreadLocal实现的读写分离在迁移后的偶发错误里提了,我不再说一次了,这次是有要求读写分离与事务部分要完全脱离配置文件,程序员折腾了很久,于是我就查了一下,由于我还是比较喜欢使用xml的方式,所以就随便。。。(过程省略吧),然而,似乎是一定要声明式的方式...

2017-05-26 19:55:00 267

转载 使用ThreadLocal实现的读写分离在迁移后的偶发错误

  最近莫名的会有错误日志,说有写操作因为走了读库而报了read only的异常,由于并没有造成应用使用的问题,开始我以为哪的配置错误就没当回事让程序员自己去查了,然而。。。   背景:之前的博客里提到过,读写分离功能是直接从老系统迁移过来的,老系统可能是因为主从库之间同步延迟而使用了基于请...

2017-05-26 19:54:00 154

转载 Spring Boot启动过程(一)

  之前在排查一个线上问题时,不得不仔细跑了很多遍Spring Boot的代码,于是整理一下,我用的是1.4.3.RELEASE。   首先,普通的入口,这没什么好说的,我就随便贴贴代码了: SpringApplication.run(Application.class, args);-...

2017-01-17 13:15:00 108

转载 Tomcat一个BUG造成CLOSE_WAIT

之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了。 然后运维发现了个问题,服务器的HTTPS端口有大量的CLOSE_WAIT: 我的第一反应是Spring boot有...

2017-01-06 17:35:00 253

转载 正则总结

".(点)": 匹配任意一个字符,换行符除外。 "[]" : 匹配中括号中任意一个字符。例如:正则表达式a[abc]a,可以匹配:aaa , aba , aca,[aaa]与[a]等同,[.]表示匹配句号 "-(短横线)" : 表示范围。[A-Z...

2016-12-28 11:31:00 66

转载 Oracle位图索引

  索引由KEY和Data组成   位图索引的KEY比普通非唯一性索引多包含一个组成部分,分区,分区是将数据按行由内部机制分段以达到比较好的检索效率   位图索引的Data中,该索引KEY中数据值在分区段中按行分布的情况,比如分区为1~5,如果只有第一行是这个值,那索引的Data就是100...

2016-12-28 11:31:00 69

转载 clr 元数据

  clr相关编译器编译生成的托管模块由四部分组成:PE32或32+头、clr头、元数据、IL代码。   元数据和IL代码完全对应,保持一致(:>)性。   元数据有很多用途:     VS的智能感知,自动补全;     代码验证保证类型安全;     序列化、反序列化;  ...

2016-12-28 11:31:00 142

转载 只写完功能代码仅仅只是开始

  甚至有时候都算不上开始,因为功能有实效要求。   最近面试总是遇到,理直气壮的认为实现了就行了,于是我整理了下大学数据结构的部分内容。   主要是关于斐波那契数列的计算方法。斐波那契数列就不介绍了,大概就是这样的:fib(n) = fib(n - 1) + fib(n - 2)。  ...

2016-12-28 11:31:00 133

转载 Apache执行Python脚本

  由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样:      因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里就不写了。    vim /etc/httpd/conf/http...

2016-12-28 11:31:00 332

转载 hash表长度优化证明

  hash表冲突的解决方法一般有两个方向:  一个是倾向于空间换时间,使用向量加链表可以最大程度的在节省空间的前提下解决冲突。  另外一个倾向于时间换空间,下面是关于这种思路的一种合适表长度的证明过程:   这种思路的主要做法是当位置冲突时使用随后的位置保存数据,但是毫无策略的直接使...

2016-12-28 11:27:00 73

转载 Kafka 文档用例

  1.2 用例   以下是一些Kafka 常见的用例。关于功能方面的一些概念,可以看这篇博客:http://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-a...

2016-12-28 11:27:00 81

转载 CSS画图

The Shapes of CSS All of the below use only a single HTML element. Any kind of CSS goes, as long as it's supported in at least one browse...

2016-12-28 11:25:00 81

转载 Parallel并行之乱用

  关于Parallel我也不细说了,一则微软封装的很好用,二来介绍这个的遍地都是。   我要说的是,要想成为一个优秀的标题党,一定要把重点放到别的地方,为了节省大家阅读时间,我先把结论说了,然后再慢慢从头说,愿意往下看的可以看看因果,不愿意看的,也算咱给大家提个醒吧。   结论就是,大家...

2016-12-28 11:25:00 107

转载 事物隔离级别和乐观锁

  最近在迁移代码,迁移过程中发现了一段应用了乐观锁的代码(这是伪代码): public boolean doWork(final int count, Entity entity) throws InterruptedException { if (3 == coun...

2016-12-28 11:25:00 117

转载 c#与java的区别

经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲。。。 一般C#多用于业务系统的开发,快速实现,微软官方的各种封装,各种语法糖,使得c#在语义语法层面上更人性化,开发思...

2016-12-28 11:24:00 99

转载 Angular Service和Factory应用的区别

Service可以用来将返回同类业务的多种返回值 Factory可以用来提供对同类业务的多个方法的调用 另外:Provider可以用来封装各独立职责 转载于:https:/...

2016-12-28 11:24:00 83

转载 剪刀剪纸

  面向对象是个理论概念,理解起来比较抽象,很难定义一个标准衡量做到什么程度就是面向对象了,很多人认为只要有对象实体类就是了,我倒是觉得如果只是那样的话,把这些对象认定是一个特殊的数据类型时,看起来有可能就成为面向过程了。当然,面向过程也有其优点和适用场景。   剪刀剪纸,如果是简单的用程序...

2016-12-28 11:22:00 114

转载 微信商户支付

  先吐槽下微信,完全就是个坑,文档确实有,但是个别细节没有提,有些得自己试。   下面总结下微信商户支付的开发,用处一般是用户从商户提现。   首先,要获取提现用户的openId,openId是用户对于公众号的唯一标识,openId是用户在公众号中的唯一标识,一个openId只属于一个...

2016-12-28 11:22:00 78

转载 DDD实践切入点(二)

  最近发现下面关于上下文的理解有些问题,不太好改,暂时先不改了 承前:大型系统的支撑,应用系统开发思想的变迁,DDD实践切入点(一)   从大比例结构入手已经开始了系统的建设,大家都知道需求是会不断变化不断深入的,刚开始自然是模糊的大比例结构对将要进行的系统有一个初步的...

2016-12-28 11:21:00 86

转载 应用系统开发思想的变迁

  据说取个高大上的名字就会很多人看,所以就用了这个名字。   历时两个半月时间终于看完了《DDD》,叹为观止,虽然以前给很多新员工讲过面向对象,不过看了之后才发现,原来理解还可以更深,还可以升华。它解决了很多困扰我的问题,甚至有的困扰了我几年。下面准备用一到两天时间再浏览一遍,然后把理解整...

2016-12-28 11:21:00 97

转载 AutoMapper对internal访问级别属性的映射

  最近在使用DDD重新搭建公司内部OA的架构,具体情况搭好了应该会写一下,这里说的是今天遇到的问题。   先简单说一下相关的几个部分:   1.聚合。聚合分成了两个模块:一个包含审批单据等估计至少今年不会怎么变的抽象模型;另外一个包含不同审批单据的实现类,继承至抽象的模块;由于主要是要说...

2016-12-28 11:21:00 109

转载 IEEE浮点标准

  原文地址:http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm Floating point system Floating point arithmetic   浮点型标准是什么?   IEEE浮点标准是上...

2016-12-28 11:21:00 167

转载 Kafka 文档引言

  原文地址:https://kafka.apache.org/documentation.html#semantics   1、开始   1.1 引言   Kafka是一个分布式,分区队列,冗余备份的消息存储服务。它是一个有独特设计的消息系统。   这是什么意思呢?   首先我们介...

2016-12-28 11:20:00 60

转载 爱因斯坦火车

  今天下班时候很疲劳,就决定路上换换口味,看看物理缓解下,同时想为封建迷信找点理论基础,于是瞄上了号称“测不准”的量子物理,无奈上学学的都还给老师了,只能从头开始,于是先简单的学了学狭义相对论。   下面分享一下。   简单来说就是有一辆火车,在火车中间位置有个光源,以火车为参照物的话,...

2016-12-28 11:20:00 216

转载 由单元测试发现的设计问题

  问题背景:采用DDD设计开发的公司内部业务审批系统,架构分层大概上就是经典DDD的架构,其中应用层使用AutoMapper对聚合和DTO做映射,聚合的大致模型:      问题定位:问题发生在应用层,通过映射产生审批单聚合时,审批单聚合中最下层(如上图中业务关系明细)用于与其上层对象(...

2016-12-28 11:18:00 142

转载 持续集成:CruiseControl.NET + VisualSVN.Server

  刚换了工作,有需要搭建一套持续集成的平台,做一下总结。   首先是我用到的工具:                  上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到。主要的需求目前是,使用已发布的稳定版本代码作为新发布版本代码的基础,避免有未完...

2016-12-28 11:18:00 100

转载 使用Monit监控本地进程

目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http://pkgs.repoforge.org/monit/monit-5.5-1....

2016-12-28 11:18:00 108

转载 新项目的CQRS设计

  刚换了个工作,闲话不说了。前两天开始一个新项目,大概是一个任务管理系统,由使用者来选取任务,执行任务,反馈完成,我大概做了些设计,本来是打算看能不能在新公司铺垫一下DDD,不过后来这块功能没分到我这,也就没办法了。不过如果分到我这,这个设计估计也不能写博客发了。   具体需求不多说,这个...

2016-12-28 11:06:00 84

空空如也

空空如也

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

TA关注的人

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