自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(282)
  • 资源 (3)
  • 收藏
  • 关注

原创 无状态会话bean(3)---远程业务接口(未排版)

迄今为止,我们只讨论了使用一个本地业务接口的会话bean。在这种情况下,本地意味着只能由运行在同一个应用程序服务器实例的JavaEE组件声明会话bean的依赖性。例如,远程客户端不可能通过本地接口使用会话bean。为了容纳远程客户端,会话bean可以采用@Remote注解来标记它们的业务接口,以声明它是远程可用的。下面代码演示了前面所示的HelloService接口的远程版本语法。标记一个接口为远

2014-10-31 23:54:35 2500 3

原创 无状态会话bean(2)----声明周期回调(未排版)

与用于应用程序代码的常规Java类不同,服务器管理无状态会话bean的声明周期它在两个方面影响了一个bean的实现。首先,服务器决定了创建和删除bean实例的时间。应用程序不会控制何时或者甚至创建多少特定的无状态会话bean实例,或者它们将存活多久。第二,服务器必须在构建之后,但是在调用bean的业务逻辑之前,初始化bean服务。同样,该bean可能必须在使用业务方法之前获得可用的资源,如JDBC

2014-10-31 23:43:09 1802 3

原创 无状态会话bean(1)---定义

无状态会话bean用于完成在单个方法的生命周期内的操作。无状态bean可以实现许多业务操作,但是每个方法都不能假定任何其他的方法会在它之前调用。这听起来像是无状态的bean的一个局限。但是这是迄今为止业务服务最常见的形式。不同于适合在对话中积累状态(如零售应用程序的购物车)的有状态会话bean,无状态回话bean旨在非常有效的执行独立操作。无状态会话bean可以在最小化对整体服务器资源影响的同时,

2014-10-31 23:24:55 3743 6

原创 会话bean综述(未排版)

会话bean就像上篇文章中提到的它的目的是提供一种旨在封装业务服务的组件技术。通常使用常规的Java接口来定义该服务支持的操作,把它作为会话bean的业务接口,客户端通过它与bean进行交互。平时做开发的时候好像没有定义过接口,而是直接将会话bean拿过来用。实现会话bean比常规的Java类略微复杂一点,如果存在一个业务接口,那么它将会实现这个接口。然而由于是EJB组件模型的一部分,因此该bea

2014-10-31 23:20:27 1850 3

原创 JavaEE应用程序

一直想写一些关于JavaEE的东西,从刚开始看《Ejb in Action》的时候就想写,到后来工作中一直在使用JavaEE的技术,开源的流行框架丢的也差不多了。JavaEE企业级的东西把自己搞的也跟傻子似的。回过头来看看避免自己真的成了傻子。

2014-10-31 23:12:43 2085 3

原创 2014年9月30日

2014年9月30日

2014-09-30 21:36:25 1324 1

原创 2014年9月30日

2014年9月30日

2014-09-30 21:36:11 1309

原创 JPA 2.0 锁机制

锁是处理数据库事务并发的一种技术,当两个或更多数据库事务并发地访问相同数据时,锁可以保证同一时间只有一个事务可以修改数据。锁的方法通常有两种:乐观锁和悲观锁。乐观锁认为多个并发事务之间很少出现冲突,也就是说不会经常出现同一时间读取或修改相同数据,在乐观锁中,其目标是让并发事务自由地同时得到处理,而不是发现或预防冲突。两个事务在同一时刻可以访问相同的数据,但为了预防冲突,需要对数据执行一次检查,检查

2014-09-30 21:35:51 11577 5

原创 2014年9月30日

2014年9月30日

2014-09-30 21:35:05 1323

原创 2014年8月31日

2014年8月31日

2014-08-31 23:18:48 1319

原创 2014年8月31日

2014年8月31日

2014-08-31 23:18:31 1135

原创 2014年8月31日

2014年8月31日

2014-08-31 23:18:14 1161

原创 2014年8月31日

2014年8月31日

2014-08-31 23:15:22 1145

翻译 什么是code review

http://smartbear.com/products/software-development/what-is-code-review/

2014-07-31 23:53:19 1529 6

翻译 什么时候该采用结对编程

结对编程是构建软件系统的一种有效方法。采用结对编程,带来的显著效益:l  更好的想法——持续不断的头脑风暴、更大的知识库、在理解上有更少的差异、有更多的脑力解决设计问题;l  更好的质量——更少的漏洞、想法的即时认证、始终如一的方法并更加遵守团队会议中的要求;l  更全面的认识——经验共享与知识共享、对于为什么做、怎么做和做什么有更深入的理解;l  更高的生产率——更好地集中精力及更高的工作强度、

2014-07-31 23:39:28 1909 10

原创 结对编程

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观

2014-07-31 23:18:53 3109 7

原创 Don’t be an easy target

之所以要起这么个题目是因为在和一个朋友聊天的时候听到了这句让笔者印象深刻的话。这个朋友举了下面这个特别简单的例子:如果你的朋友说你穿的一件T恤不好看(也可能是裤子、帽子……who care~),那么作为中国人典型的做法是当场默认,部分童鞋可能有言语上的反抗,但是相信大多数人的想法是“这件衣服也许真的不好看,我以后再也不穿了”。更有甚者会对自己的衣服产生敌意,“MD都是你这件破衣服让我在朋友面前丢人

2014-07-30 20:07:27 2314 23

原创 cas

cas?

2014-06-30 23:52:04 1501 3

原创 JSF教程(12)——生命周期之Render Response Phase

在这个阶段JSF实现者建立视图委托当局通过合适的资源渲染页面。如果这是一个初始请求,在页面上 需要展示的组件将会被加入到组件树中。如果这不是一个初始请求,那么各个组件已经被加载到树中那么将不会再次加载。如果请求是一个postback类型的请求而且在处理值的相关阶段(ApplyRequest Values phase,Process Validations phase,或者update Model

2014-06-30 23:46:49 2392 2

原创 JSF教程(11)——生命周期之Invoke Application Phase

JSF教程(11)生命周期在这个阶段JSF实现将处理任何应用界别的事件,例如表单的提交或者链接点击后跳转到另一个页面。这时如果应用需要重定向不同 的web应用字眼或者产生一个资源其并不喊任何的JSF组件,那么就调用FacesContext.responseComplete方法。如果正在被处理的这个视图是从重建状态信息从先前的一个请求而且如果一个组件引发了一个事件,那么这些事件将会传递到相关的监听器

2014-06-30 23:34:03 2264 4

原创 提高团队代码质量

最近看到一篇博客,大致的意思就是网管将原本混乱不堪的交换机整理整齐了,起初交换机是图2那样的,由于越来用的人越多,操作的人越来越多,最终成为了图1那个样子。这不禁让我想到了项目中的代码,原先在刚上线的时候谈不上是完美的,但它总归是整齐的,但是由于中间人员流动,bug修改等等原因吧,最终的结果就是代码一团糟。为什么会出现这样的情况呢?权限(权利)拿交换机来说,当自己的网络不通畅的时候自己可以随便进出

2014-06-30 21:35:51 3233 16

原创 技术选型注意事项

最近一个朋友比较烦恼,原因是他们的系统换数据库了,如果仅仅是换个数据库倒是没啥大不了,撑死了改个数据库的驱动,改改连接字符串就得了,这都是分分钟的事。但是悲哀的是表结构也得到了较大的调整,“累觉不爱”来形容这为朋友对换数据库这件事的感受再恰当不过了。而笔者对这件事有几点体会。错误发现的越早浪费的时间越少其实如果后面Dao实现用的是Hibernate或者是JPA那么在开发阶段换数据库就不再是什么麻烦

2014-06-19 07:53:08 2910 15

原创 项目经理注意事项(3)---宏观把控

都说管理者比干活的人更聪明,更善于总结思考,相应的从薪酬上也比其他平常人会多一些。能者劳心不能者劳力,但是在劳心的过程中那些事情是需要劳心的呢?动脑子和动手可以理解为劳心与劳力,在项目中领导者脑子里应该装些什么,他应该去关注什么。如果从开发者的角度而言,一个bug或者一个功能做与不做的影响是这个功能,因为你只顾你的一亩三分地。有这个功能锦上添花,没它也无可厚非。但是领导者所关注的就不再仅仅是某个b

2014-05-31 04:42:09 4532 25

原创 JSF教程(10)——生命周期之Update Model Values Phase

在整个JSF生命周期中经历了取值、验证的阶段最终从request中拿到合理的值,下面就是在本阶段给相应的服务端对象(ManageBean)赋值了。JSF实现只是去更新和input组件中value属性对应的bean的属性的值,也就是说如果在界面上没有讲ManageBean的属性“绑定”到Input类的组件中那么这个Bean的属性是不会更新的。这里需要留意的是如果本地的数据不能转化为对应Bean的属性

2014-05-31 04:01:45 3765 14

原创 JSF教程(9)——生命周期之Process Validations Phase

在这个过程当中JSF的实现者使用processValidators方法处理所有在tree中的组件中注册的验证器。验证的过程就是通过每个组件已有的规则对其已经保存的值进行校验,同时也对输入的值进行校验,前提是组件的immediate属性没有设置为true。从代码来看在UIViewRoot中的这个processValidators方法和上个阶段中的processDecodes基本一致,不用说下一个阶段

2014-05-31 01:27:59 3455 10

原创 JSF教程(8)——生命周期之Apply Request Values Phase

当一个组件tree在一个postbacks请求中被恢复之后其中每个组件从request的参数中取得各自的值,这里使用的是processDecodes方法。这个值会保存在本地的每个组件中,在源码中此过程的代码较为简单,因为实现者将取值这个操作全部封装在processDecodes方法中。不过说实话JSF的这部分的实现非常失败,因为在UIViewRoot中有将近两千行代码,这,这,这……

2014-05-31 00:27:58 3083 10

原创 JSF教程(7)——生命周期之Restore View Phase

在JSF宏观的生命周期中分为Execute和Render,在Execute部分又将分为具体的步骤(可参考前面博客中的流程图)一共是六个步骤在后面的文章中笔者将带着大家慢慢的走进JSF(JavaEE仅仅是给了一个规范,至于具体代码如何实现。不同的中间件会有所不同),本篇博客就详细介绍第一阶段Restore View Phase。

2014-04-30 21:54:35 3182 5

原创 JSF教程(6)——生命周期中处理请求

当JSF处理一个initial请求的时候程序将会创建一个新的view并且将它储存在FacesContext的实例中,这里需要注意的是只有在JSF的Response指向另一个JSF的View的时候上面的过程才会执行。其实这很好理解,如果简单一个超链接或者一个按钮将请求发送到服务器,而这个请求仅仅是跳转到一个不包含任何JSF组件的页面那么在服务端将没有任何View被产生,更别说被储存在FacesContext的实例中了。

2014-04-30 21:54:01 3192 2

原创 JSF教程(5)——生命周期概述(续)

JSF页面在其内部是以一个树的形式进行表示的(放到哪先别管,后面的文章详细的告诉你),就像我们平时写xml那样,有最顶级的父节点以及下面的孩子节点,孙子节点等等。这样的一个对象在JSF当中叫做View(视图?),这就很好能解释之前为什么会有ViewScope这个注解来标识manageBean的范围了。相信读到这里再去理解前面文章中的Scope会有更深刻的理解。

2014-04-30 21:50:49 2655 2

原创 JSF教程(4)——生命周期概述

对于任何一个应用而言其完成自身功能的各种步骤就是她的生命周期,一般是指从开始创建(这里可以是组件、控件等等任何应用可能要用到的对象)经过中间一系列的步骤到最终的结束(呈现内容)。其实以往接触的CS系统也有声明周期,只不过不需要开发者去关注罢了。比如在使用VB开发CS架构的系统开发者不需要关注哪个控件是什么时候创建的,什么时候显示的,什么时候在内存中被销毁的等等这些事情。所有的应用都有其生命周期,在Web应用的生命周期中有下面几个环节是最常见的,当然在JSF中对于下面的几个环节也是必不可少的。

2014-04-30 21:50:37 2958 3

原创 JSF教程(3)——初探JSF中的Ajax

Ajax是提高用户体验的最有效方法之一,同时也是提高系统性能的方法之一。提供页面局部刷新所以可以满足上面的两个要求。在JSF当中可以通过两种方式加入Ajax特性。一种是手动写JS代码,另一种是用JSF自带的功能(其中封装了Ajax特性而已)。后者是本文要介绍的重点。在一些类似与buttons,text当中可以使用Ajax来实现自己想要的功能,说的再多不如代码来的实在一些。

2014-03-31 23:42:17 8566 7

原创 JSF教程(2)——ManageBean中的Scope

上一篇文件中介绍了JSF的HelloWorld,其中在ManagedBean中我们比较敏感的信息是关于Scope的注解,在Struts中配置一个Action的时候也是需要配置Scope的,他们有些相似,只不过此Scope非彼Scope。如果读者对Struts比较了解那么对于Scope肯定有自己的理解,其实Scope(范围)就是在形容这个被描述的物体所存在的范围。Java官方的Tutorial中是这样描述的。

2014-03-31 23:41:59 10361 4

原创 JSF教程(1)——简介 + HelloWorld

在写第一个HelloWorld之前先来宏观的了解一下JSF,也许你之前使用过Struts(1或者2),SpringMVC,甚至于直接采用JSP+Servelet开发过web层。JSF与这些最大的不同是JSF是基于一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。如果你之前接触过VB或者.Net(貌似微软的东西很喜欢采用这种组件化的方式)相信你更加能够理解“以组件

2014-03-29 02:02:47 16072 26

原创 项目经理注意事项(2)——敏捷开发中的头儿

俗话说兵熊熊一个将熊熊一窝,跟对头儿绝对是一件振奋人心的事儿。之前写过一篇关于《项目经理注意事项》(千万别要点)的博客,当时所在团队的开发模式是一般的瀑布模式开发,其实说白了就是类似于作坊式的开发,经理去和客户谈需求(我会告诉你主要是去谈钱吗?)然后拿回来一堆他(她)认为的需求就开始让我们做了,很多时候无理的要求让开发人员不知所措,比如说让把网页上的多选框颜色改变,或者选中的样式从打钩改成打叉。你

2014-03-22 17:33:40 5936 40

原创 2014年2月28日

2014年2月28日

2014-02-28 23:24:45 1934 7

原创 2014年2月28日

2014年2月28日

2014-02-28 23:24:35 1514 2

原创 2014年2月28日

2014年2月28日

2014-02-28 23:24:23 1469 1

原创 2014年2月28日

2014年2月28日

2014-02-28 23:24:07 1442 1

原创 通鉴

通鉴

2014-01-31 23:19:15 1563

原创 通鉴

通鉴

2014-01-31 23:19:05 1643

EasyMock单元测试例子

几个例子展示如何使用EasyMock进行单元测试

2013-12-31

运用Ajax高仿谷歌自动完成关键词

运用Ajax以及DIV+CSS高仿谷歌自动完成关键词

2012-06-10

简易Web服务器

基于java的简易服务器,希望她对和我一样的初学者有所帮助。

2012-04-09

空空如也

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

TA关注的人

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