自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

会struts+spring+hibernate就可以做java架构师了吗?

最近公司又在招人,头安排我对一些应聘者做电话面试,让我遇到了不少华而不实的家伙。这些家伙的简历上密密麻麻会写了很多项目经验,都说自己做过需求做过架构,有项目管理经验。但是细细问下去,你会很失望,有些人会把hibernate 一级缓存和二级缓存搞混,有些人声称自己从来没有用过hibernate的二级缓存,有些人简历上写了一大堆模块,实际上只做了其中一两个,还有些人号称精通J2EE,却不知ejb3是何...

2008-07-09 09:42:28 238

seam真的不需要DAO吗?

尽管seam文档和其它相关的资料中,都声称entityManager的抽象程度已经很高了,没有使用DAO模式的需要,但是从这次的项目实践来看,将 部分的数据访问放到DAO里是很有必要的。首先,使用DAO有易于做单测。如果不使用DAO,需要访问数据库的Action就注入一个 entityManager直接访问数据库,这样写起来方便,但是在单测这个action的时候,要么得做一个假的entityMan...

2008-07-01 14:10:17 266

理解seam的conversation

几乎所有对seam进行介绍的文档中都会用大量的篇幅来说明会话(conversation),因为它是seam的发明,让seam与众不同的一个地方。但是要完全理解和运用conversation并不是容易呀。会话是一种用来存储程序上下文数据的容器,和session类似,只不过它的生存周期和session有很大的差别。会话分成两类,临时会话和长会话。临时会话会开始于服务器端处理客户端的post请求,结...

2008-06-29 15:23:08 345

REST向左,SEAM向右

这两年REST(Representational State Transfer)随着ajax, web2.0, ROR逐渐火了,起来。不得不承认REST确实是一种在互联网环境下非常好的架构风格。REST中一个非常重要的约束,就是服务端无状态,将大部分的状态管理向客户端转移。而SEAM正好朝向REST的反面走去,而且是走得很彻底。SEAM是完全的服务器端有状态,所有的状态都在服务器端来管理。所以se...

2008-06-28 16:29:44 229

在会话内,EJB的性能优于普通java bean

用普通的java bean 做conversation scope内的组件会有这么大的性能问题,那么用ejb会怎么样呢?我今天特意做了一个测试,还是在那台开发机上,还是用那个 supplierSearchAction, 所做的变更,只是把SupplierSearchAction由普通的java bean变成了ejb。我在用ejb,普通conversation scope的java bean, 和p...

2008-06-27 15:46:08 219

Seam的conversation存在性能问题,要正确使用

近半年的项目实践让我们注意到了seam2.0.2的conversation的性能问题。测试人员抱怨系统速度慢的时候,我们一开始以为是由于数据库查询导致的性能问题。但是经过各方面排查,我们发现一个不做数据库操作的简单页面,就算是按照前文《优化richfaces,给seam提速》操作后,同样会很慢。于是我们开始怀疑起 seam本身了。一个无意中的试验发现,我把一个以前放在conversation sc...

2008-06-24 15:34:02 273

项目上线了,螃蟹吃完了

公司历时近半年的java项目终于于上周上线了。在项目经理到来之前,我们在技术选型上动摇了很久,struts, struts2 ,spring mvc, grails等都试用过一些,基本上选定了struts2。项目经理到位后,他最终选定了seam这个非常新的技术,于是这近半年来,我们可以算得上是尝试吃螃蟹的人了。无论过程怎么样,最终还是完成了任务,让程序成功上线了,这至少可以说明seam已经合格了。...

2008-06-23 02:40:27 249

优化richfaces,给seam提速

Seam使用了richfaces做为jsf的组件库。richfaces的功能确实不错,但是性能上存在一些问题。一些简单的页面,用firefox打 开,YSlow插件都显示花掉了数秒时间。通过 firebug和YSlow插件,可以看到,打开页面的时候,浏览器会向发起很多请求,以下载javascript和css,而且这些文件的体积还不是很 少。减少请求次数,减小传输数据量,可以一定程序上改善客户端体验...

2008-06-05 07:31:26 208

优化jboss以提高性能

概述为了优化jboss的性能,对jboss服务器做了如下改动。 设置jvm 参数 安装jboss-native 降低jboss输出日志的等级 起用了jboss内的tomcat对传输数据的压缩功能 使用ehcache做hibernate的二级缓存下面就以上的各改动做详细说明,为了表述方便<jboss>代表jboss的安装目录:设置 jvm 参数...

2008-06-03 06:07:34 199

JSF的节奏

一般的网络程序和服务器的交互是完全自由的,用户在浏览器上对页面操作可能会引发对任一URL的任何一种方法的请求,点一个普通的超链接,引发一个GET 操作,单击一个提交按钮,引发一个POST等等,这都是完全自由的。但是在JSF的世界里,浏览器与服务器之间有着一个固定模式的交互方式,这是JSF的 节奏。 让我们看看这个节奏:a.浏览用GET请求一个页面 -> b.JSF生成指定页面的组件树,产生...

2008-05-16 07:14:04 154

JSF vs MVC

Jboss seam使用的前端展示层技术是JSF,而且目前只支持JSF,不支持struts, struts2, spring mvc等很多其它的web框架。看来jboss seam的设计者是很看重 JSF的。用了几个月的seam之后,我对JSF的认识终于有一些切身的体会(以前虽看过一些资料,但是没有实际应用过)。我以前一直是用像spring mvc这样很传统的MVC框架的,从这些框架转到JSF上面...

2008-05-14 09:52:26 374

如何区分Action, service 和 dao

在不分层的系统里,我们可以将所有的代码都写到一个地方,比如struts的Action类。在这里,我们不仅要处理页面逻辑,还要做业务逻辑,还要做数据访问。比如说:public String addUser() { if(user == null) { return FAIL_NO_USER; }  Result result = null; if...

2007-11-30 08:26:38 242

mysql sql 语句中的大小写规则

SQL 中的大小写规则在语句的不同部分是不同的,而且还取决于所引用的东西以及运行的操作系统。下面给出相应的说明:■ SQL 关键字和函数名。关键字与函数名是不区分大小写的。可按任意的大小写字符给出。■ 数据库与表名。MySQL 中数据库和表名对应于服务器主机上的基本文件系统中的目录和文件。因此,数据库与表名是否区分大小写取决于主机上的操作系统处理文件名的方式。运行在 UNIX 上的服务器...

2007-11-20 05:36:56 990

firefox 3.0 beta 1 试用与下载

昨晚上网,无意中看到说firefox 3.0 beta 1 网上已经有下载的了,于是我就在网找了一下,果然有,点这里可以下载。安装上后,为了不和现在用的firefox2相冲突,在快捷方式里firefox.exe 命令后加上了 -p 以便启动时选用新的配置文件不会覆盖以前的。安装上后,试用一会,感觉很不错,到目前为此还没有出现过崩溃现象,所打开的网站也都能正常浏览,没有发现兼容问题。那fir...

2007-11-17 06:03:27 276

通过Annotation和Struts2的interceptor实现向Action中注入jndi资源

为了实现向struts2的Action中注入ejb3,我写了一个Annotation用来定义要注入哪个ejb3,又写了一个struts2的interceptor用来实施注入。Annotation代码如下:@Retention(value=RetentionPolicy.RUNTIME)@Target(value={ElementType.METHOD})@Inheritedpublic ...

2007-11-14 09:19:54 193

用JoinColumn使用JPA的OneToMany不自动生成数据库表

有两个实体Order和Customer,一个用户可以有多个订单,一个订单属于一个用户,所以Customer与Order是一对多的关系,那么在Order实体里可以有一个到Customer的引用customer,同时在Customer里有一个Order实体的集合orders。如果在只是如下这样写:public class Order { @id private long id; ...

2007-11-14 03:00:52 720

Java EE 的依赖注入功能有限,不能注入到非管束的普通类里面

JavaEE的依赖誉为入功能远没有spring那样强大,只能把特定的资源注入到特定的对象里面。这些特定的资源是指ejb, timer等 java EE的标准服务,其它的乱七八糟的东西是不能注入到别的组件里的。同时,能接受注入的也只有被容器管束的servlet, filter, ejb等标准组件,普通的类也是不能享受到被注入的待遇的。结果现在用struts2时,想在struts2的action里面取...

2007-11-13 09:39:18 255

用htmlparser解析google搜索结果页面里的url

htmlparser是一个非常棒的html页面解析器,它自带的filterbuilder很不错。到sourceforge下载后,解压好就可以用了。运行安装目录下的bin里面的filterbuilder.bat就可打开filterbuilder,如下图(点击看大图):在窗口最底下的文本框里输入要parse的页面的url, 在Operation菜单里选择Fetch Page就会载入页面。左边的区...

2007-11-10 16:19:00 427

用ActionListener处理在JTextField里按Enter事件

常常有这样的需求,填完一些JTextField后,直接按Enter键就执行动作,而不需要再按一下按钮。本来以为在加一个Keytyped事件的侦听器,然后读取输入的字符就可以确定了,但是试了几次都没有成功。后来查了一下JDK API,看到这样的话: How the text field consumes VK_ENTER events depends on whether the text fi...

2007-11-09 16:00:16 736

JNDI中的组件私有环境,公共环境和部署时映射

j2ee难用,其中一个原因是jndi不好用,明明已经配置好名字为dataSource的数据源,但是在部署JPA时,老是抛异常说找不到数据源。今天在用jboss时,终于又明白了一些。原来j2ee中的组件是有它自己独自的环境的,位于java:/comp/env这个jndi目录下。每个组件不能访问另外一个组件的私有环境,实现组件各自独立。同时,又有一些jndi目录和名字是公共的,如java:/下的其它...

2007-11-07 06:32:48 199

nohup : linux下让程序在用户登出后继续运行

为了能让程序在用户登出后继续运行,在命令前加上 nohup命令,如下:nohup <do_something_cmd> &如果要运行的程序是服务程序,则不需要加。

2007-11-02 05:50:13 449

空空如也

空空如也

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

TA关注的人

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