代码改变世界

一些困惑和一些疑问

2011-08-04 20:48 by hanwesley, 174 阅读, 0 推荐, 收藏, 编辑
摘要:如何提高代码利用率,如何模块化,模块之间如何调用?如何应对需求经常变化的境地,如何面对未经认真思考的需求呢?软件业是个靠大量复制用户而生存的行业,要做到真正的个性化服务需要承担的成本将非常大。业务基础架构平台软件是一个好的选择,如wordpress 阅读全文

ResultSet转java对象的通用解决方案

2011-08-04 19:22 by hanwesley, 1296 阅读, 0 推荐, 收藏, 编辑
摘要:根据resultSet,以及给定对象的Class对象进行填充,Class需要遵循JavaBean规范。view plainprint?privateCollectionmergeObject(ResultSetrs,Classclazz)throwsException{ResultSetMetaDatarmd=(ResultSetMetaData)rs.getMetaData();Collectioncoll=newArrayList();;while(rs.next()){Objectobj=clazz.newInstance();for(inti=1;i<=rmd.getColumn 阅读全文

企业应用不仅仅CRUD

2011-07-26 10:23 by hanwesley, 436 阅读, 1 推荐, 收藏, 编辑
摘要:“企业应用就是CRUD”,我现在要说,说这句话的人实在是太可耻了。在企业应用中,最重要的莫过于数据和业务逻辑,业务逻辑发生变化,数据结构,算法实现,数据展现都将发生变化。那么如何在多变的业务逻辑中解脱开发人员来呢?“每天都在写Action,Service,Dao,好没技术含量啊”,经常听到同事这样说。其实这些工作可以花上一周时间做个工具出来,说白了就是重复的活永远让机器去干。我觉得程序员应该专注于以下几个方面的改进:1)通用的解决方案如果每个程序员就一个问题都去纠结一把,尽管对于个人提高来说或许很有用,但是对于一个项目组,一个公司,是没有任何传承的。对于提高整个团队能力没有一点帮助。2)解放重 阅读全文

hibernate错误记录

2011-06-08 14:57 by hanwesley, 477 阅读, 1 推荐, 收藏, 编辑
摘要:1) There is no ID/IDREF binding for IDREF 'sessionFactory'.多个配置文件imprort的时候,属性引用最好采用<bean id="groupDAO" class="com.magic.schedule.dal.impl.hibernate.GroupDAOImpl"> <property name="sessionFactory" ref="sessionFactory"/> 而不是<property name= 阅读全文

Relations between Design Patterns

2011-06-08 09:03 by hanwesley, 225 阅读, 0 推荐, 收藏, 编辑
摘要:RelationsbetweenDesignPatterns1.充满热情,喜欢你的工作创造性做得最好比昨天更好2.热爱你的代码为人写代码,而不是为机器写代码写干净的代码3.版本控制备份代码跟踪变更经常commit如果build出错就不要commit4.阅读代码在你成为一个好的作家之前,首先是一个好的读者。70%时间在读,30%在写。5.实践实践再实践在公司外项目实战尽可能做得更好以老师身份实践6.重构提高你的代码质量使代码易于理解维护和拓展。7.跟从模式和最佳实践面向对象设计原则SOLIDGRASPDRYKISS等设计原则8.TDD/BDD测试驱动开发,测试是系统的特征约束测试是第一个用户9. 阅读全文

apache TOMCAT负载均衡笔记

2011-06-03 18:06 by hanwesley, 208 阅读, 0 推荐, 收藏, 编辑
摘要:TOMCAT配置,配置域名及地址 <Host name="bbs.abc.com" appBase="webapps\docs" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="." path="" reloadable="true"/> 阅读全文

Mysql使用笔记

2011-06-01 14:40 by hanwesley, 298 阅读, 0 推荐, 收藏, 编辑
摘要:一、建表错误在Mysql6.0中执行:create table JBPM_BYTEARRAY (ID_ bigint not null auto_increment, NAME_ varchar(255), FILEDEFINITION_ bigint, primary key (ID_)) type=InnoDB;出现错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &# 阅读全文

计划

2011-05-26 19:35 by hanwesley, 181 阅读, 0 推荐, 收藏, 编辑
摘要:NIOjetty sprint IOC 阅读全文

maven jetty插件配置 jetty6

2011-05-26 19:29 by hanwesley, 789 阅读, 0 推荐, 收藏, 编辑
摘要:<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version> <configuration> <jettyEnvXml>src/main/resources/jetty-env.xml</jettyEnvXml> <!--数据源配置--> <webAppSourceDirectory> 阅读全文

三分钟理解JSON教程

2011-05-26 12:19 by hanwesley, 388 阅读, 0 推荐, 收藏, 编辑
摘要:如果你跟我一样(我担心你就是),那么,到目前为止,这应该是你对JSON的经验:两个月前你从没听说过JSON一个月前你听说了这个词但没有留意一周前你发现这个词被提到多次,开始想,没错…又有一些垃圾东西要学了今天你被心灵深处的一个闹铃闹醒,心想:这该死的json究竟是个什么东西?为什么突然间到处都是它了! 于是晚上我乘坐了一辆慢腾腾的公交回到家(周五通常都是很慢),然后给自己找了一大堆关于JSON资料。所以我可以文雅的带你进入JSON的大门。 这就开始了… 这几个字母是什么意思? JavaScriptObjectNotation. [一个滑稽的名字。它应该被称作LightweightEcmascr 阅读全文

日历处理

2011-05-19 11:06 by hanwesley, 214 阅读, 0 推荐, 收藏, 编辑
摘要:var date1 = "$!cpsGroupKeeperDO.beginTime"; var date2 = "$!cpsGroupKeeperDO.endTime"; var cf_enddate = Y.one("#cf_enddate"); var cf_begindate = Y.one("#cf_begindate"); if (cf_enddate) cf_enddate.set("value", date2); if (cf_begindate) cf_begindate.set 阅读全文

Json 学习笔记

2011-05-18 12:14 by hanwesley, 282 阅读, 0 推荐, 收藏, 编辑
摘要:java后端处理Json格式相对XML一种轻量级的返回结果。如何将Java对象封装为Json格式,以下是一个Demo。import net.sf.json.JSONArray;import net.sf.json.JSONObject; class Test{ public static void main(String [] args){ JSONObject obj = new JSONObject(); GroupKeeperJSON do1 = new GroupKeeperJSON(); do1.setqID("111"); GroupKeeperJSON do2 阅读全文

开发CRM中遇到的一些问题总结

2011-04-29 18:31 by hanwesley, 642 阅读, 0 推荐, 收藏, 编辑
摘要:mvn jetty:runrg.apache.jasper.JasperException: tag 'checkboxlist', field 'list', name 'selectRoleId': The requested list key 'roles' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]出现这个错误的 阅读全文

Maven使用一些笔记

2011-04-19 16:05 by hanwesley, 192 阅读, 0 推荐, 收藏, 编辑
摘要:mvn dependency:sources 下载源代码mvn eclipse:eclipse 生成eclipse文件-Dmaven.test.skip=true 阅读全文

redis 小姐来啦

2011-04-13 17:15 by hanwesley, 293 阅读, 0 推荐, 收藏, 编辑
摘要:redis默认一个请求执行一次可以设置multi后进入消息队列等待,当执行exec后执行。动比较简单windows上下载并解压redis安装包 cd 进入安装目录执行 jredis-service.exe就可以启动了 在另外窗口redis-cli.exe即可进入操作界面。 即可操作redis另外用java方式访问redis,采用jredis客户端连接redis。两种连接方式 JRedisService service = new JRedisService("localhost",6379); service.set("333", "haha 阅读全文

Jetty学习笔记

2011-04-12 13:28 by hanwesley, 331 阅读, 0 推荐, 收藏, 编辑
摘要:Jetty启动方式java-jarstart.jar(内部实际执行org.eclipse.jetty.start.Main类)一般类加载器分三类:引导类加载器、扩展类加载器、系统类加载器请见这里的分析http://blog.csdn.net/lovingprince/archive/2009/07/02/4317069.aspx类加载器的几个特点:1、双亲委托2、全局负责猫发现在离它10米远的前方有一只奔跑的老鼠,马上紧追上去,老鼠跑9步的路程猫只需跑5步,但猫跑2步的...浏览次数:53次悬赏分:40|解决时间:2011-4-17 05:21|提问者:知道手机网友猫发现在离它10米远的前方有 阅读全文

客户端安全

2011-04-11 16:12 by hanwesley, 216 阅读, 0 推荐, 收藏, 编辑
摘要:cookie很不安全,在firefox中可以通过cookieManager修改cookie的值。 由于这个我们的系统出现了N多问题,由于cookie没有加密造成的。 这次修复暂时将加密后的cookie存储到客户端。 涉及敏感操作需要将加密和未加密的比对,如果相等则继续,如果不相等则清理cookie,跳到登陆页面。 之所以没有把之前没有加密的cookie加密,是因为别的系统用到了这个cookie,所以在改动小的情况下出了这个方案。 阅读全文

JVM 专题

2011-04-01 10:20 by hanwesley, 308 阅读, 0 推荐, 收藏, 编辑
摘要:http://developer.51cto.com/art/201001/176550.htmJava启动/usr/java/jdk1.6.0_13/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dprogram.name=run.sh -server -Xms4g -Xmx4g -XX:PermSize=96m -XX:MaxPermSize=256m -Xmn2560m -verbose:gc -Xloggc:/home/yahoo/output/logs/gc.log -X 阅读全文

细节绝对成败

2011-03-01 21:56 by hanwesley, 199 阅读, 0 推荐, 收藏, 编辑
摘要:写一次性成功的代码JS能够很好兼容所有浏览器。减少不必要的返工造成的重复劳动。不纠结于技术细节,更多重视设计和业务逻辑的实现 阅读全文

开发中的小心得

2011-02-18 09:25 by hanwesley, 211 阅读, 0 推荐, 收藏, 编辑
摘要:总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充!转自:http://www.javaeye.com/topic/900986测试需要注意的问题:1:测试需要涵盖所有的业务逻辑: 自动化测试不需要覆盖所有的代码,但需要覆盖所有的业务逻辑,因为一处的修改可能造成其他业务逻辑的不可用。考虑所有情况如单个删除,批量删除。一对一移动,多对多移动。2:浏览器:测试产品支持的浏览器,具体到浏览器版本号,如支持IE6,IE7和IE8。3:分辨率:测试产品支持的分辨率,如支持1024X768以上的分辨率。4:现场环境测试:一部分功能出现问题,可能是现场环境导致,所以必须在现场环境进行严格测试,如现场网 阅读全文

集合,数组排序

2011-02-16 11:31 by hanwesley, 165 阅读, 0 推荐, 收藏, 编辑
摘要:Collections.sort(List,Comparator);Arrays.sort(array,Comparator); 阅读全文

前端页面 JS,HTML

2011-02-16 10:08 by hanwesley, 309 阅读, 0 推荐, 收藏, 编辑
摘要:JS操作Select<option value="-25">QQ会员</option><select id="select" name="cat" style="width:130px;" onChange="changeResPrice(this);"> obj 为select 对应ID对应对象obj=document.getElementById("select");alert(obj.options[obj.selectedIndex 阅读全文

Excel 2010 保存很慢的问题改进

2011-02-13 20:26 by hanwesley, 1612 阅读, 0 推荐, 收藏, 编辑
摘要:关闭简体中文版Office 2007中文拼写检查的具体步骤为:控制面板&rarr;添加/删除程序&rarr;选择Microsoft Office 2007条目,然后点击&ldquo;更改&rdquo;按钮,在弹出的窗口中选择&ldquo;添加或删除功能&rdquo;,然后点击&ldquo;继续&rdquo;按钮&rarr;在&ldquo;安装选项&rdquo;中,依次展开&ldquo;Office共享功能&rdquo;、&ldquo;校对工具&rdquo;、&ldqu 阅读全文

Builder,Template模式区别总结

2011-02-13 19:59 by hanwesley, 601 阅读, 0 推荐, 收藏, 编辑
摘要:软件编程一个恒古不变的流程: &ldquo;发现变化、封装变化、隔离变化&rdquo;。 模板方法:定义了一个操作中算法的骨架,而将具体步骤的实现延迟到子类中。模板方法使得派生类可以在不改变一个算法结构的情况下,重新定义该算法某些特定步骤的实现逻辑。 建造者模式:将一个复杂对象的建造方法从其表现中分离出来,以便同样的建造方法可以建立不同的表现。Abstract Factory与Builder相似,因为它可以创建复杂对象。主要的区别是Builder模式着重于一步步构造一个复杂对象,而Abstract Factory着重于多个系列的产品对象(简单的或复杂的)。Builder是最后一 阅读全文

设计模式之builder模式

2011-02-12 18:01 by hanwesley, 204 阅读, 0 推荐, 收藏, 编辑
摘要:package org.springframework.samples.jpetstore.designpatten;//真正需要得到的产品class Product { private String info; private String desc; public void setDesc(String desc) { this.desc = desc; } public String ge... 阅读全文

文本文件处理

2011-02-12 13:59 by hanwesley, 191 阅读, 0 推荐, 收藏, 编辑
摘要:1)Excel数据处理为SQL利用公式="insert into tables values(seq_tables.nextval," &amp;B:B&amp; ",'" &amp;C:C&amp; "'," &amp;D:D&amp; "," &amp;E:E&amp; ",SYSDATE,STSDATE);"2)linux利用Shell脚本 awkcat1.txt|awk-F","' 阅读全文

lucene之入门学习篇

2011-02-11 16:16 by hanwesley, 321 阅读, 0 推荐, 收藏, 编辑
摘要:Lucene是一个高效的,基于java的全文检索库。什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等。当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,当根据需要可按结构化数据来处理,也可抽取出纯文本按非结构化数据来处理。非结构化数据又一种叫法叫全文数据。按照数据的分类,搜索也分为两种:对结构化数据的搜索:如对数据库的搜索,用SQL语句。再如对元数据的搜索,如利用windows搜索对文件名,类型,修 阅读全文

淘客掌柜敏感操作引入安全校验

2011-02-11 16:14 by hanwesley, 494 阅读, 0 推荐, 收藏, 编辑
摘要:主要目的:为淘宝用户提供全方位的安全保护,防止淘宝账号被盗后,引起不必要的麻烦(比如将单品佣金从10%&mdash;&gt;50%,造成淘宝掌柜损失)安全校验表现层: 1、 敏感操作的入口,加入安全校验检测 技术上主要是JavaScript调用淘宝主站的的安全服务接口 封装了三个事件: onHide 当关闭iframe的操作 onShow 显示iframe的操作,一般没有要写的 onCheckSuccess 当校验成功之后的逻辑安全校验业务层: 业务上: 1、淘宝掌柜登录系统后,判断掌柜是否设置了需要安全校验 doNeedMemberSafeCheck 2、进行用户身份校验 d 阅读全文

设计模式之单例模式

2011-02-11 16:08 by hanwesley, 344 阅读, 0 推荐, 收藏, 编辑
摘要:Singleton模式主要作用是保证在java应用程序中,一个类Class只有一个实例存在。饿汉式类加载的时候就初始化实例缺点:如果系统运行中根本没用到的话会很浪费,在用到这个类的时候再去实例对象会比较好优点:安全,可靠适用场景:在声明完单例引用之后立即实例化。如果构建该对象的花销远远小于获取同步锁的花销,那么此种方式非常值得。publicclassEagerSingleton{ privatestaticfinalEagerSingletoninstance=newEagerSingleton(); privateEagerSingleton(){ } publicstaticEagerSi 阅读全文

spring批量提交事务

2011-02-11 15:12 by hanwesley, 3991 阅读, 0 推荐, 收藏, 编辑
摘要:spring批量提交事务问题。Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_MANDATORY使用当前的事务,如果当前没有事务,就抛出异常。PROPAGATION_REQUIRES_NEW新建事务,如果当前存在事务,把当前事 阅读全文

设计模式之策略模式

2011-02-10 17:59 by hanwesley, 250 阅读, 0 推荐, 收藏, 编辑
摘要:具体策略运行时刻自由切换 阅读全文

设计模式之享元模式

2011-02-10 17:41 by hanwesley, 192 阅读, 0 推荐, 收藏, 编辑
摘要:Flyweight模式中常出现Factory模式.Flyweight的内部状态是用来共享的Flyweight factory负责维护一个Flyweight pool(模式池)来存放内部状态的对象.Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度.应用场合很多:比如你要从一个数据库中读取一系列字符串,这些字符串中有许多是重复的,那么我们可以将这些字符串储存在Flyweight池(pool)中. 阅读全文

设计模式之装饰模式

2011-02-10 17:08 by hanwesley, 243 阅读, 0 推荐, 收藏, 编辑
摘要:装饰模式(Decorator):其目的在于1)不改变接口的前提下扩展功能,2)动态的给一个对象增加(扩展)其他职责。接口上: Decorator is a component实现上: decorator has a component 阅读全文

ibatis 动态SQL相关

2011-02-09 15:52 by hanwesley, 443 阅读, 0 推荐, 收藏, 编辑
摘要:Ibatis动态SQL相关总结 阅读全文

企业应用通盘考虑

2011-02-07 13:13 by hanwesley, 323 阅读, 0 推荐, 收藏, 编辑
摘要:关于架构: 最高层次的系统分解 系统中不易改变的决定 管道方式 过滤器方式 分层,如何将企业应用组织成不同的层次,以及这些层次之间如何协同工作。 根据应用的复杂程度来分层,应对不同的分离方式,有一条关于依赖性的普遍原则:领域层和数据源层绝对不要依赖表现层,这条原则将简化在相同的基础上替换表现层的待嫁,也使得表现层的修改所带来的连锁反应尽可能小,领域层与数据源层的关系更为复杂,其取决于数据源层的架构模式。关于性能: 尽量减少远程调用 响应时间:系统完成一次外部请求处理所需的时间。 吞吐率:单位时间系统处理多大的请求量。对于企业应用来说,吞吐率是每秒事务数(tps)来度量。响应性:系统响应请求的 阅读全文

[转]作为程序员,我们理应自豪

2011-02-06 09:56 by hanwesley, 139 阅读, 0 推荐, 收藏, 编辑
摘要:如何被推荐?我们每个人都对自己的未来有所思量,因为我们每个人都怀揣着高远的梦想,我们每天都在打理着我们的生活,日复一日,年复一年。有人说,人生最重要的不是努力,不是奋斗,而是抉择。那么我想说,我们选择程序员无悔这一生。对待工作--认真负责:试问哪个程序员不把自己变得非常有思想,非常有深度,让自己的大脑始终保持着兴奋状态?试问哪个程序员没有孤身在寂寥的深夜挑灯敲代码调试程序?试问哪个程序员不像妓女一样把顾客奉为圣明,随时随地都要满足用户的各种变态需求?···所以作为程序员的我们,我们应该很自豪,因为我们热爱我们的工作,我们对待我们的工作很认真,很用心,很负责任。为了我们的工作,我们必须要学会和同 阅读全文

阿里antx,Maven原理

2011-02-01 16:02 by hanwesley, 1256 阅读, 0 推荐, 收藏, 编辑
摘要:antx学习Antx是面向project的系统用户只需要定义projectProject的目录结构Project所依赖的包Build选项Plugin管理 目的是解决:How todo something? 例如:javaplugin解决了如何编译java代码 例如:war plugin解决了如何打war包 基本技术:基于Jellyscript 在Jelly中可直接使用任何AnttaskProject管理 目的是描述:Whatdoes the project look like? 例如:源代码放在哪? 例如:项目依赖哪些jar包? 基本技术:纯XML描述(project.xml)Reposito 阅读全文

Web应用本质 二年陈

2011-02-01 15:53 by hanwesley, 204 阅读, 0 推荐, 收藏, 编辑
摘要:web应用的本质:客户端与服务器之间,通过HTTP协议通信。Filter相当于一个拦截器。它会在请求到达Servlet之前,以及响应返回到浏览器之前,被激活。Filter的用途很广泛,例如:验证授权、加密、压缩等。Servlet生命周期:创建对象 – Servlet对象被创建时,不能做任何分配系统资源的操作。init初始化service多次使用 一个servlet对象将用来处理所有的相关请求销毁: 当服务器关闭,或者undeploy时,调用destroy方法被垃圾收集器收集M-V-C是Model-View-Controller的简写。这个模式指出,在一个WEB应用中,应该把Model、View 阅读全文

技术小总结(Maven,Tomcat,Jetty,Eclipse)

2011-02-01 15:48 by hanwesley, 3132 阅读, 0 推荐, 收藏, 编辑
摘要:MVN创建工程mvn archetype:create-DgroupId=org.springframework.samples.jpetstore -DartifactId=petstoremvn dependency:sourcesmvn dependency:sources 下载依赖包-DdownloadSources=true -DdownloadJavadocs=truemvnautoconf:autoconf -Dproperties=/home/jiangyr/antx_subscription.properties项目中用到了maven来管理,因为有些功能用到了sun的专用AP 阅读全文

Maven学习总结

2011-01-31 12:26 by hanwesley, 7398 阅读, 0 推荐, 收藏, 编辑
摘要:Maven简单介绍Maven是基于项目对象模型(Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.掌握maven就是要学会如何编写pom.xml,尤其对于多个子项目的管理约定俗成src/main/java 存放Java文件src/main/resources 存放资源文件src/main/test 存放测试文件Maven坐标groupIdcom.ibatis/groupId 项目属于哪个组artifactIdibatis-sqlmap/artifactId 项目在组中唯一的IDversion2.1.0.565 阅读全文