java多线程之一小步

摘要: 针对多线程的编程,首先要注意的就是线程安全问题,但是我们应该采取哪些措施来避免这些问题呢,看过java并发实践之后,真是有些恍然的感觉。1.首先要查看你所使用的对象所在的上下文,会不会多线程访问; 我们写的大部分程序都是过程性的,这也是为什么很多人在学java开发时,可以根本不考虑其面向对象的特质。同样的,我们每天写的代码也多数是在单线程下运行的,即便你或者他在写web代码。因为真正在多线程处理的是java容器,是你所使用的框架,真正到我们的写代码的那一层,跟多线程相关的已经很少很少。但实际coding时,还是有需要我们注意的地方。比如,你的确需要写一个servlet,这个时候就面临了多线程的 阅读全文
posted @ 2011-05-01 16:33 eric_chen 阅读(411) 评论(0) 推荐(0) 编辑

可扩展的java开发和部署架构

摘要: 1.开发的组件化(分子项目进行开发); 2.业务的独立化(建立在1的基础之上,通过统一的服务总线定制相关业务,避免业务之间的相互依赖); 3.测试独立(提供单元测试和集成测试); 4.部署的组件化(建立在第一,二的基础之上,如果部署到服务器时,必须同时部署,未免依赖太重); 5.开发补丁的管理及维护。 就目前来看,开发的组件实现可以借助代码编译和管理工具,如maven,ant,ivy等,所以必须... 阅读全文
posted @ 2011-01-25 22:40 eric_chen 阅读(544) 评论(0) 推荐(0) 编辑

Make Eclipse with Maven be your first Partener!(把eclipse里面的maven项目变成可以直接发布的web工程)

摘要: 看到很多人设置eclipse中的maven项目,使得其target路径指向webroot,但是我没做成! 所以,我就一直在找能够让maven项目直接发布到eclipse的server中的方法,终于找到了。 第一步,在eclipse里面创建maven project,一般可以通过创建简单工程,或者直接next,进入下一步,选择maven-archetype-webapp,会自动生成相关的proje... 阅读全文
posted @ 2011-01-25 22:27 eric_chen 阅读(614) 评论(0) 推荐(0) 编辑

结构式-composite模式的理解

摘要: 1.说明:composite模式是一种帮我们解决结构分层和统一抽象的解决方案。所谓的结构分层指原型跟原型组合的关系,而统一抽象是指原型跟组合之间的能够抽象一致。在gof的书中也有一个比较好的例子,那就是画图,他们把单个图形(点、线、矩形等)作为原型,然后把由单个图形组成的行或者一个表格看成是原型的组合,但是原型及其组合都可以统一抽象成一个组件。通过这种方式,用于展现的代码调用就无需区分具体是单个原型还是组合,只需要依赖于抽象组件的动作即可。个人没参与过这种例子,但是也从gof的这个例子中了解了大部分的抽象。但是,还是想自己找个现实中的例子来看看。大家小时候都玩过那种塑料积木吧? 如果你没玩过, 阅读全文
posted @ 2011-01-15 23:09 eric_chen 阅读(591) 评论(0) 推荐(0) 编辑

java classloader原理初探

摘要: ClassLoader是用来处理类加载的类,它管理着具体类的运行时上下文。1.ClassLoader存在的模块意义:1)从java的package定义出发: classloader是通过分层的关联方式来管理运行中使用的类,不同的classloader中管理的类是不相同的,或者即便两个类毫无二致(除了路径)也是不同的两个类,在进行强制转换时也会抛出ClassCastException。所以,通过classloader的限制,我们可以建立不同的package路径以区别不同的类(注意这里的“不同”是指,命名和实现完全一致,但是有不同的包路径。)。那么也是因为有特定的classloader,我们可以实 阅读全文
posted @ 2011-01-15 16:57 eric_chen 阅读(17527) 评论(1) 推荐(2) 编辑

命令模式、template method模式、工厂方法模式的比较

摘要: 强烈推荐GOF的《设计模式》,不用看什么j2ee设计模式。GOF的书的确经典。看过之后,精神爽,身体棒,吃嘛嘛香!命令模式的类图,网上到处都有!一般包括:client,invoker,Command接口,具体的command实现,receiver。首先说明一下,命令模式的场景:实体解耦和时间解耦。嘛意思呢?就是命令发出者和接收者两个不互相依赖了,时间顺序上也是可以有间断的,即命令发出者不必在那里等着接收者,两者在时间上是分开的。举个小例子:国家(ivoker,发起人)发出扫黄打非的命令(封装了行动信息和指标)啦,各地警察叔叔们(接收者)就出来巡逻(干活)啦,专拣那个红灯区和一些洗浴中心下手。整 阅读全文
posted @ 2010-11-17 22:48 eric_chen 阅读(1038) 评论(0) 推荐(0) 编辑

rails操作中碰到的问题集锦

摘要: 1.在执行rails server或者相关操作时,出现如下错误。Could not find gem 'sqlite3-ruby (>= 0, runtime)' in any of the gem sources.Try running `bundle install`. 1) 先运行命令: bundle install 成功则已;出现如下异常: can not find sqlite3-ruby或类似异常可以考虑下面的处理方式 2)http://stackoverflow.com/questions/2305920/rails-3-can-not-find-sqlit 阅读全文
posted @ 2010-11-10 17:09 eric_chen 阅读(227) 评论(0) 推荐(0) 编辑

svn的资源库及用户管理

摘要: 目前我们使用svn管理用户时,主要从库,组,项目等方面来管理。首先,我们要有一个svn的管理员用户,我们是admin,对应在linux上也有一个svnadmin的操作系统用户。下面区分说明这两个用户,svnadmin是跟资源库存储相关的。因为要跟apache的访问对应,所以要修改apache中的httpd.conf文件中的user svnadmin #这是指让apache以svnadmin这个用户... 阅读全文
posted @ 2010-11-05 10:54 eric_chen 阅读(6461) 评论(0) 推荐(0) 编辑

linux环境下apache2与tomcat6的负载配置

摘要: 同样是环境搭建,以前也配置过,但是通过jk或者jk2之类的东西,仿过来的。这段时间,因为svn的配置过程体验及用户和我们公司的要求,也来准备了一下负载的配置。希望能有些用处。配置过程从以下几个方面进行:1.服务器的准备: 用一台电脑(以下称为服务器一)做apache负载,另外一台(服务器二)做tomcat服务器。 初步设想,在服务器一上搭建apache及其相关配置,在服务器二上搭建多个(我测试了两... 阅读全文
posted @ 2010-10-22 10:29 eric_chen 阅读(512) 评论(0) 推荐(0) 编辑

配置64bit linux环境中的svn服务器

摘要: 关于linux下svn服务器的搭建,我是从准备、编译、安装、配置、使用的步骤进行的。由于我们的环境是64位linux,所有相关的软件源代码都要在64位下重新处理。以下是安装的主要过程:1.准备: 为了保险起见,我使用的是subversion-1.4.5.tar.gz ,与它相关的其他安装包:apr-1.2.12,apr-util-1.2.12.这两个包是Apache Portal Runtime... 阅读全文
posted @ 2010-10-20 13:21 eric_chen 阅读(1505) 评论(0) 推荐(1) 编辑