2013年12月19日

一次jar包冲突的解决过程

摘要: 背景介绍,项目通过maven来管理,有项目依赖关系,使用eclipse的springSource tool suite来编译项目在执行junit测试时报如下错误:Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.(Ljava/lang/Class;)V at org.springframework.context.annotation.CommonAnnotationBeanPostPro 阅读全文

posted @ 2013-12-19 18:48 关攀攀 阅读(7473) 评论(1) 推荐(0)

2013年12月15日

程序逻辑的组织方式

摘要: 尝试用uml从简单到复杂的程序逻辑组织方式,体现出程序用什么样的方式来面对复杂1.只有一个类一个方法先从最简单的只有一个类,一个方法的情况说起,如果只写一个类一个方法写成怎么样算合格了呢?ClassA 必须有单一职责,可以用一句话说出它是什么或者它做什么,例如:ClassA负责什么,或ClassA提供什么服务之类的主谓结构。可做为A的注释methodA 同上也必须有单一的职责,可以用一句话说出它做什么,例如:ClassA可以提供methodA服务。一个方法一要有单一的服务。方法要有明确的输入和输出。在java中类属性也可以做为输入和输出。能做到上面两点,这个类和方法就合格了。引申下:名字和注释 阅读全文

posted @ 2013-12-15 12:53 关攀攀 阅读(1583) 评论(0) 推荐(0)

2013年12月12日

100重构过程

摘要: 如果现有代码类繁多,不符合唯一职责,一开始分析代码结构就没意义了。1.看做过程化代码阅读,分析出代码做了几件事。2.针对代码做的事补充单元测试。3.设计新的代码结构4分析新老结构差异,制定重构步骤,把原代码一点点演变为新代码5小步重构并通过测试 阅读全文

posted @ 2013-12-12 19:22 关攀攀 阅读(125) 评论(0) 推荐(0)

2013年11月18日

3. 面向过程和对象

摘要: 今天好开心,找到了一直在找的问题的答案,一直在思考自已编码或重构过程所用的技能哪些是面向对象的思想,哪些是面向过程的,一直没没想太通,今天看了松本行弘的书豁然开朗,面向过程主要是通过限制(顺序,分支,循环)和抽象化(黑盒子化过程)来处理复杂性,面向对象是面向过程的补充扩展,加入了数据抽象(黑盒子化数据和处理过程)。从面向对象是面对过程的扩展的角度,带来了实际编程过程和理论的统一。1.对象不再一定和现实的对象相对应,只要满足数据和过程的封装和变化粒度,就放心抽取吧。2.过程的抽取完全可以理解为面向过程的抽取,结合数据时认为是面向对象的抽取。松本行弘对多重继承的论述也相当精彩,有见地1.每个语言都 阅读全文

posted @ 2013-11-18 20:18 关攀攀 阅读(169) 评论(0) 推荐(0)

2013年11月10日

知识库图片

摘要: 20120228uml培训.JPG20120520代码成本.JPG20130518程序结构.JPG20130520不喜欢继承.JPG20130520公共代码抽取基本原理.JPG20130520喜欢继承.JPG20130520直接重用能重用的.JPG20130526好代码特点分析.JPG20130526重复代码抽取方法.JPG20130601分层概述.JPG20130601小步安全重构.JPG 阅读全文

posted @ 2013-11-10 11:42 关攀攀 阅读(195) 评论(0) 推荐(0)

2013年11月8日

28. 代码实例-spring组件配置化-使用注解

摘要: spring的核心思想就是程序整体松耦合的组件化,每个组件可以通过修改配置来改变参数,适合做配置参数的是指在程序运行中不随意改变的参数,改变后一般需要重启程序(如线程数)。一般通过xml,在使用注解时,想要通过修改配置来改变参数,就需要利用配置文件。(1)spring配置 1 2 12 13 14 15 16 classpath:important.properties17 classpath:important2.properties18 19 ... 阅读全文

posted @ 2013-11-08 16:46 关攀攀 阅读(425) 评论(0) 推荐(0)

25. 代码实例-单元测试

摘要: (一)数据库层使用集成测试 1 29 /** 30 * 测试订单任务数据库访问 31 * @author guanpanpan 32 * 33 */ 34 @RunWith(SpringJUnit4ClassRunner.class) 35 @ContextConfiguration(l... 阅读全文

posted @ 2013-11-08 16:43 关攀攀 阅读(376) 评论(0) 推荐(0)

24. 常用的多线程使用方式总结

摘要: (1)总论1.可以不用多线程最好不要用2.如果可以不共享数据最好不要共享3.服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量因为数据库访问等待造成线程等待时间长比较长见,下面的例子就是以数据库数据迁徙程序说明。常用模式(2)分几个线程处理不同数据适用场景:数据可以容易的分开处理 1 package me.jdk.thread; 2 3 import java.util.concurrent.CountDownLatch; 4 import java.util.concurrent.ExecutorService; 5 import java.util. 阅读全文

posted @ 2013-11-08 16:42 关攀攀 阅读(282) 评论(0) 推荐(0)

38. linux

摘要: 文件相关下载文件:sz 上传文件 rz 删除文件:rm rm -rf *拷贝:cp –r d1 d2移动:mv file.exe /toolsll, ls -l 文件信息查看文件大小:du 文件名vi /etc/hostspwdtouch catalina.outchown -R tomcat.tomcat *chown -R admin.admin *查看大小:df -hdu --max-depth=1 -htomcat相关vi /etc/hostsln -s /export/home/tomcat/domains/server22/bin/start.sh start.shsh /expo 阅读全文

posted @ 2013-11-08 16:41 关攀攀 阅读(226) 评论(0) 推荐(0)

29. 代码实例-设计模式-模板方法

摘要: (1)接口 1 12 public interface DataLock {13 14 /**15 * 从数据库中查询一定数量的OrderTask,并进行lock,lock到指定条数就返回,如果lock不到就返回空集合16 * @param modeSize 总模数17 ... 阅读全文

posted @ 2013-11-08 16:40 关攀攀 阅读(178) 评论(0) 推荐(0)

导航