自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(48)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 XML的滥用

XML曾经很火,什么技术只要跟XML沾边儿就顶上“标准”的光环,后来大家慢慢意识到XML的种种弊端,比如差劲的表达能力,枯燥的解析(SAX),性能低下(DOM),越来越多的人开始理智地使用XML。只把它用在“合适”的时候。程序员中仍然存在滥用XML的惯性,最近还和同事们争论了半天java和xml的使用场景。 先跑下题聊聊java. 近两年越来越多搞Java的人跑去学动态语言,ruby, groovy, scala之类的。 原因在于这些动态语言“表达能力”更好。是的,这些语言更灵活,更精炼。不难理解,后出的

2011-05-07 00:16:00 367

原创 spring内核研究-set方法注入和构造函数注入(转)

转自:http://blog.csdn.net/ycyheartfly/archive/2007/02/25/1514190.aspx Spring种提供了2种常用的注入方式,set方法注入和构造函数注入。由于这2种注入方式很相似,都可以满足我们的需求,所以在大多数情况下我们忽视了这2种注入方式的区别。下面让我们看看这2种注入方式的特点。 我们先看看Spring在使用set方法注入时,是怎样实例化一个Bean和Bean的合作者的: 在A中有一个setB方法用来接收B对象的实例。那么Spring实

2011-04-07 23:36:00 278

原创 Spring MVC step by step 代码分享

Spring发布包里的docs目录下,有Spring MVC step by step文档,写得非常清楚,但是没提供源代码。我在它的基础上略作了一点的改动,分享出来。是基于2.5.6版本的。 * 文档中使用tomcat作为container,免不了部署的步骤,我用eclipse启动embeded jetty, 更方便一些, 省了部署的步骤,直接就能run。 关于eclipse内嵌jetty, 可以参考之前的博客: 利用jetty实现超轻量级web开发 * 文档用了一堆ant脚本,很多工作是用来做部署

2011-03-29 07:01:00 234

原创 hsqldb的使用方法

现在很多开源项目使用hsqldb作为数据库。了解hsqldb的基本使用方法还是很必要的。这篇不是全面介绍hsqldb的文字,但我认为用这个笔记的内容调试程序够用了。 一、下载数据库,地址在http://sourceforge.net/projects/hsqldb/files/hsqldb/ 我使用的是1.8.0版本。假定下载解压后的目录是D:/hsqldb/, 那么hsqldb.jar在D:/hsqldb/lib目录下。这个jar文件是hsqldb的核心包   二、启动数据库,比如数据库名称为tes

2011-03-26 22:39:00 595 1

原创 hibernate annotation 双向一对多 List映射

hibernate一对多双向映射通常通过“多”的一端负责维护关系。但是对于list, 因为list保存关于“顺序”的信息,而多的一端没有这样的信息,所以只能由“一”的一端维护关系。 用在线图书馆举个例子。书和评论之间是一对多的关系。 book代码: 1: package org.emoticon.library.model; 2:  3: import java.util.ArrayList; 4: imp

2011-03-19 20:10:00 367

原创 小结Ajax

Ajax是一组技术的集合:javascript, css, DOM, XMLHttpRequest. 其中XMLHttpRequest是达到异步效果的核心部件。 一个异步的例子,摘自Ajax in Action: 1: 3: 4: 5: 6: 无标题文档 7: 8: 9:  10

2011-03-16 15:55:00 168

原创 总结Spring Security之 关于授权,保护web和保护方法

× 关于授权 AcessDecisionManager是管授权的。具体授权(authorization)的工作是交给一系列Voter来做的。每个Voter都实现AccessDecisionVoter接口的vote方法,返回 int ACCESS_GRANTED = 1;(投赞成票) int ACCESS_ABSTAIN = 0;(投弃权票) int ACCESS_DENIED = -1; (投反对票) AccessDecisioinManager有三种实现: AffirmativeB

2011-03-11 10:25:00 549

原创 总结Spring Security之 关于Authentication

跟权限有关的两个概念是 认证 和 授权, 先上个图: Run-As Manager 和 After-Invocation Manager不重要 The  actual  implementation  of  a  security  interceptor  will  depend  on  what resource is being secured. If you’re securing a URL in a web application, the security  intercept

2011-03-08 11:05:00 3137

原创 在公司组建virtual团队之 关于持久层

链接 在公司组建virtual团队(一) 在公司组建virtual团队(二) 大家都说没有绝对好的技术框架,只有适合的。我觉得如果非要考量一种技术框架好坏,可以从两个方面看,一看是否帮助程序员productive,二看是否灵活,适合实现细粒度的功能。通常这两个方面互相矛盾。就好象NBA里力量和速度是两个重要的身体素质指标。但是力量越好的,往往速度越差。NBA里最NB的往往是这两方面协调的比较好的,比如很多人力量比小皇帝詹姆斯好,也有很多人速度比他快。但力量比他大的,速度都不如他;速度比他快的力量肯定比他差远

2011-03-06 23:59:00 323

原创 Domain Driven Design and Development In Practice(转)

转载自: Domain Driven Design and Development In Practice 好长的一篇文章,从头到尾读了一遍,写的挺好,以后有时间再读一遍,一些提到的内容,比如Dozer并不了解,有时间了解一下! Background Domain Driven Design (DDD) is about mapping business domain concepts into software artifacts. Most of the writings and articles

2011-03-05 16:28:00 1206

原创 yuying姐姐 & SAS三年

今天是yuying姐姐的生日,也是我在SAS工作的三周年。 祝姐姐生日快乐!好久不见,为什么还常常想念?   记录三年以来发生的一些对自己影响比较大的事,离现在越久的,越记不清楚了。 * 2008年3月,入职SAS: 当时不止一个朋友反对我接SAS的offer, 因为薪水只比在oracle略高了一点点,做的工作也没意思。离职的时候多少有些赌气,着急闪人,SAS也是全北京城离家最近的公司。于是迷迷糊糊地就来上班了。 * 2008年4月, transfer team

2011-03-03 00:23:00 365

原创 On domain-driven design, anemic domain models, code generation, dependency injection and more…(转)

这是一篇质疑DDD的好文,后面也贴了一个回复,原文链接:http://techblog.bozho.net/?p=180 Eric Evans has formulated what domain-driven design (DDD) is. Martin Fowler is a great supporter and advocate of DDD. These are remarkable names and it is almost certain they are supporting some

2011-03-01 22:40:00 296

原创 在公司组建virtual团队(二)

书接上回,在公司组建virtual团队(一),收到一些回复之后,终于在1月13号举行了virtual team第一次碰头会。平时大家各自窝在自己team工作,尤其像我这种“闷骚”的, team以外不认识几个人。第一次碰头会有一半人是从没打过招呼的,但是气氛挺好,大家都比较热情,还挺谦虚,每个人自我介绍都说自己是“打酱油的”, sigh…大伙儿不知道,其实俺也是打酱油的。整个研发中心美女有限,难得virtual team一共三个女士,都挺好看的,哈哈,风景亮丽呀。参加碰头会的,有三个人在sas做develop

2011-02-28 23:31:00 194

原创 在公司组建virtual团队(一)

前言 记得JavaEye Robbin说过,外企的人不是非得靠技术混,鬼精的都是靠把一点儿破事儿吹大了写report混的。呵呵,有些偏激,但也反映部分现实。靠工作那点儿东西,技术迟早要退回原始社会。给鬼子打工很难有机会在公司经历一个软件产品从无到有的完整过程,至于原因,你懂的。相信很多人跟我一样,都希望能经历一个产品完整的生命周期,体验一切细节。另外, 一些技术和想法并不适合应用在公司的产品上,于是开始萌发念头聚一些同事组建virtual团队合作做点小项目。公司一直靠新闻组交换信息,很多资料也没有被组织好

2011-02-25 23:52:00 219

原创 详细讲解在Spring中进行集成测试(转)

转载自 http://tech.it168.com/j/2007-10-19/200710190919953.shtml   在单元测试时,我们尽量在屏蔽模块间相互干扰的情况下,重点关注模块内部逻辑的正确性。而集成测试则是在将模块整合在一起后进行的测试,它的目的在于发现一些模块间整合的问题。有些功能很难通过模拟对象进行模拟,相反它们往往只能在真实模块整合后,才能真正运行起来,如事务管理就是其中比较典型的例子。 按照Spring的推荐(原话:You should not normally use t

2011-02-24 10:14:00 211

原创 java serializable(转)

这篇包含三篇文章的转载和摘抄一段effective java的code 第一篇转载 大家都知道Serializable是一个mark interface,告诉JVM这个对象可以被转换成二进制流来传输. 但是Serializable与Externalizable的转换二进制流的过程是不一样的. Serializable 在我们实现这个接口的时候,我们可以使用4个私有方法来控制序列化的过程:   我们来看一个例子: Java代码 1: public clas

2011-02-23 23:17:00 1206

原创 总结java的exception

这篇和前面的 总结java的interface和abstract class 一样。跳过最基础语法不聊,只说一些比较tricky的东西和一些好的practice.   语法: Exception继承自Throwable. Throwable还有一个儿子是Error,但是一般用不到。不过有些二百五面试官喜欢问回字有几种写法,所以还是要知道有Error这回事的。Exception分为checked和unchecked两种。   java的checked exception一直是个很有争议的东西。Thi

2011-02-22 00:12:00 257

原创 总结java的interface和abstract class

先说说interface和abstract method语法中需要注意的地方。 Interface: 1. An interface can contain fields, but these are implicitly static and final. 2. You can choose to explicitly declare the methods in an interface as public, but they are public even if you don’t say it

2011-02-20 22:08:00 167

原创 也谈代码质量

这篇算是 一堂如何提高代码质量的培训课 的读后感。作者网名fangang. 这系列文章涵盖很多内容,包括设计模式,DDD,代码审核等等。这些话题大于“代码质量”。更像是“提高软件质量的培训课”。培训课本身就是高质量的,赞!网上有不少转载,比如http://www.tech-q.cn/thread-3831-1-1.html。赞同作者的很多观点,也收益不少。总结一下:   [fangang]我们评价高质量代码有三要素:可读性、可维护性、可变更性。 [vcycyv]同意这三个方面。我总这样想,软件的核心是

2011-02-19 17:54:00 288

原创 hibernate many-to-many revisited(转)

转自:http://josephmarques.wordpress.com/2010/02/22/many-to-many-revisited/ 讲了many-to-many在修改的时候怎么解决性能问题。大体看了一遍,有些地方还没好好体会,绝对是个好文,先收藏了! The modeling problem is classic: you have two entities, say Users and Roles, which have a many-to-many relationship with

2011-02-17 01:05:00 329

原创 咱数据库使用外键么?

今天看天乙社区的程序,发现一个外键都没有啊,太狠了。上网看了一些资料,稍微整理了一下。 这个帖子很牛: http://www.itpub.net/viewthread.php?tid=1313696&extra=&page=1   我的观点是,外键在初始阶段能加的都加上,只有迫不得已的时候才disable或drop掉。遇到性能瓶颈的时候,尽量采用其它方式调优,而不要轻易牺牲掉外键。有外键约束的时候,写程序的确会有约束,但从直觉上说这种约束一定程度上揭示了设计或实现上不合理的地方。带着外键写出来的应用

2011-02-17 00:58:00 157

原创 串讲23种设计模式

零零碎碎地,学习过很多轮设计模式。总是学过就忘。后来就在google docs上做了一系列笔记,方便复习。最近把这些笔记搬家到blogjava上了,一边搬家,一边又复习一遍。学习设计模式有两个意义: 一、学习设计模式最重要的是了解模式的应用场景。编程遇到特定场景的话,要有意识联想到设计模式,哪怕细节忘了也没关系,翻翻书就找到了。 二、提高设计的思想。学习设计模式的时候,要体会模式精妙之处,当想明白大师思想和自己的差距的时候,差距就缩短了一点儿。 有的模式平淡无奇,应用却广泛。有的模式设计精巧,应用场景

2011-02-15 22:44:00 238

原创 abstract factory(转)

转载自 http://www.javaeye.com/topic/413580#1064514 一家公司生产两个系列的产品   A系列, 食品里: milk,meat,noodle   B系列, 与A系列相对应的餐具,Spoon,Knife,Chopsticks 产品有两个系列,在A系列某个位置的产品,在B系列一定有一个对应的产品, 牛奶--汤勺, 肉-刀, 面条--筷子   抽象产品系列之一, 食品类接口与三个具体的食品类 1: package Foo

2011-02-15 21:11:00 121

原创 分享十二本经典电子书,涉及java, OO design, spring, hibernate,struts2, agile

相信你们都读过其中的一些书,太经典了,值得反复玩味。每本都能从我的sky drive网络硬盘下载 1. thinking in java java developer常见案头书   2. effective java, 2nd Edition 会写代码和写好代码的差距,可以靠这本书缩短。包含JDK1.5的feature. 太出名了,不多评论。   3. refactoring – improve the design of existing code Martin Fowler的经典著作之一

2011-02-14 22:05:00 237

原创 利用jetty实现超轻量级web开发

几年前,如果你不用EJB,很多人都用IDE+tomcat插件做web开发。 现在越来越多人使用jetty了。这不是简单地用Jetty替换tomcat,巧妙的地方在于我们可以直接用main函数在IDE里启动Jetty. 这样,你不需要配置IDE的server。不同于IDE+tomcat插件的方式需要两个project,web app和server project. 使用下面介绍的方式你只有一个java project就行. 开发环境更简单,debug也更方便,不需要remote debug的方式,jetty非

2011-02-13 22:41:00 272

转载 composite(转)

Motivation When dealing with tree-structured data, programmers often have to discriminate between a leaf-node and a branch. This makes code more complex, and therefore, error prone. The solution is an interface that allows treating complex and primitive o

2011-02-13 20:20:00 205

转载 spring security2 配置精讲(转)

转载自:http://www.javaeye.com/topic/319965 论坛上看了不少Spring Security的相关文章。这些文章基本上都还是基于Acegi-1.X的配置方式,而主要的配置示例也来自于SpringSide的贡献。 众所周知,Spring Security针对Acegi的一个重大的改进就在于其配置方式大大简化了。所以如果配置还是基于Acegi-1.X这样比较繁琐的配置方式的话,那么我们还不如直接使用Acegi而不要去升级了。所以在这里,我将结合一个示例,重点讨论一下Sp

2011-02-13 18:09:00 204

转载 visitor

参考:http://en.wikipedia.org/wiki/Visitor_pattern Example The following example is in the Java programming language, and shows how the contents of a tree of nodes (in this case describing the components of a car) can be printed. Instead of creating "pri

2011-02-13 14:18:00 167

原创 svn迁移(dump & load) & 删除已保存的用户名

迁移 我使用visual svn作为服务器。使用方法参见我的另一篇博客: visualsvn 1. 创建待备份的repository时,选中create default structure(trunk, branches, tags). check in 一些代码 2. dump: 运行 svnadmin dump c:/svnRepo/forum > forum.dump 3. 在另一台机器上创建forum repository. 这次不要选create default structure 4.

2011-02-13 11:54:00 339

转载 factory method

基本概念 FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类.Factory Method把创建这些实例的具体过程封装起来了,简化了客户端的应用,也改善了程序的扩展性,使得将来可以做最小的改动就可以加

2011-02-13 11:29:00 160

转载 fly weight

单纯fly weight 1: //抽象享元角色 2: abstract public class Flyweight 3: { 4: abstract public void operation(String state); 5: } 6:    1: //具体享元(ConcreteFlyweight)角色

2011-02-12 23:57:00 207

转载 command

参考 http://en.wikipedia.org/wiki/Command_pattern /*the Invoker class*/public class Switch { private Command flipUpCommand; private Command flipDownCommand; public Switch(Command flipUpCmd, Command flipDownCmd) { this.flip

2011-02-12 23:24:00 189

转载 chain of responsibility

The following Java code illustrates the pattern with the example of a logging class. Each logging handler decides if any action is to be taken at this log level and then passes the message on to the next logging handler. The output is: Writing to stdout:

2011-02-12 23:16:00 161

原创 2011-02-11

看了一篇文章:详解 Spring 3.0 基于 Annotation 的依赖注入实现 节选:Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository 注解便属于最先引入的一批 http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-iocannt/index.html =================== 使用 @Autowired 注解进行装配,只能是根据类型进行匹配。@Auto

2011-02-12 18:04:00 133

原创 2011-02-11

Configuring Jetty, Maven, and Eclipse together with Hot Swap: http://www.clickonchris.com/2010/05/configuring-jetty-maven-and-eclipse-together-with-hot-deploy/   maven权威指南(maven definitive guide)的下载地址 : http://www.juvenxu.com/mvn-def-guide/  :

2011-02-11 23:55:00 141

转载 state(转)

state模式 一、State模式定义: 允许一个对象在其状态改变时,改变它的行为。看起来对象似乎修改了它的类。 二、模式解说 State模式主要解决的是在开发中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对原来的代码进行编译。State模式采用了对这些不同的状态进行封装的方式处理这类问题,当状态改变的时候进行处理然后再切换到另一种状态,也就是说把状态的切换

2011-02-09 23:07:00 109

转载 decorator(转)

参考: http://en.wikipedia.org/wiki/Decorator_pattern Motivation UML Diagram for the Window Example As an example, consider a window in a windowing system. To allow scrolling of the window's contents, we may wish to add horizontal or vertical scrollb

2011-02-09 22:58:00 126

转载 builder(转载)

Builder Abstract interface for creating objects (product). Concrete Builder Provide implementation for Builder. Construct and assemble parts to build the objects. Director The Director class is responsible for managing the correct sequence of object c

2011-02-09 22:41:00 97

转载 Mediator(转载)

一、 模式定义: 用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 二、 结构图 (略) 1) 抽象中介者:定义同事(Colleague)对象到中介者(Mediatior)对象的接口,通常是一个事件方法。 2) 具体中介者:具体中介者实现抽象中介者声明的方法。知晓所有的具体同事类,从具体同事接收消息向另外的具体同事类发送命令。 3) 抽象同事类:定义中介者到同事对象的接口,同事对象只

2011-02-08 17:32:00 109

转载 bridge(转载)

/** "Implementor" */ interface DrawingAPI {     public void drawCircle(double x, double y, double radius); } /** "ConcreteImplementor" 1/2 */ class DrawingAPI1 implements DrawingAPI {    public void drawCircle(double x, double y, double radius) {   

2011-02-08 17:27:00 143

hibernate 笔记 XMind版本

精心写的hibernate笔记,使用思维导图的方式。可以用这个免费软件打开http://www.xmind.net/

2011-01-29

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

TA关注的人

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