- 浏览: 122206 次
- 性别:
- 来自: 四川
-
最新评论
-
weir2009:
没什么反应呀
java解读NIO Socket非阻塞模式 -
cpszy:
lz辛苦了,学习
freemarker三宗罪 -
bencmai:
flexmojos 配置挺麻烦的,而且不同版本的flexmoj ...
在Flex项目中使用Maven -
chenhongwei0924:
很精确..
java位操作符
文章列表
无符号右移位操作符“>>>”在将bit串右移位时,从bit串的最左边填充0,这和带符号右移位操作符“>>”不同。“>>”在将bit串右移位时,从bit串的最左边填充原来最左边的位。也就是说,bit串原来最左边的位是符号位,如果为1,则在带符号右移时最左边始终填充1;如果为0,则在带符号右移时最左边始终填充0。 移位操作符的例子见下表。
操作
结果
说明
00110010 << 2
11001000
右边始终填充0
00110010 >> 2
00001100
结果一样
0011001 ...
Spring BeanFactory提供了类似pico container中自动装配组件依赖的对象的功能。自动装配能应用在每个组件上,可以为一些组件定义自动装配,而另一些组件则不使用。
使用”autowire”属性可以设置自动装配,autowire有五种模式:
no
默认属性,不进行自动装配。
byName
通过bean的属性名称自动装配合作者。
SHAPE \* MERGEFORMAT
按照bean定义的名称自动装配
Spring用bean 中s ...
自动依赖检查可以保证所有java bean中的属性(set方法)都在Spring中正确的配置。如果在一个java bean中定义了一个name属性,并且也setName方法。那么在开启自动依赖检查功能后,就必须在Spring中定义这个属性,否则Spring将抛出异常。
请看下面的例子:
Dao.java
包含一个setName方法。
package research.spring.beanfactory.ch3;
public class Dao {
private String name;
public void setName(String name) {
this.nam ...
InitializingBean
Spirng的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,它仅仅包含一个方法:afterPropertiesSet()。
package org.springframework.beans.factory;
/**
* Interface to be implemented by beans that need to react once all their
* properties have been set by a BeanFactory: for exampl ...
1. 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。 2.获得的多少并不取决于读了多少,而取决于思考了多少、多深。
什么是索引
在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别,与书中的索引一样,数据库中的索引使您可以快速
找到表中的特定信息。索引包含从表中一个或多个列生成的键,以及映射 ...
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据
Hessian 介绍
注意事项
在进行基于Hessian的项目开发时,应当注意以下几点:
▲JAVA服务器端必须具备以下几点:
·包含Hessian的jar包
·设计一个接口,用来给客户端调用
·实现该接口的功能
·配置web.xml,配好相应的servlet
·对象必须实现Serializa ...
1.MINA
框架
简介 MINA
(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架
。通过使用MINA
框架
可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够 ...
Hessian源码分析(三)
- 博客分类:
- Hessian
HessianSkeleton是Hessian server端的核心类,主要功能是接收网络输入流(被包装为AbstractHessianInput),反序列化输入流得到methodName和参数,然后调用服务端的服务,得到结果后序列化为输出流,返回给客户端,主要流程如下图所示:
HessianSkeleton的核心代码如下所示:
public void invoke(Object service,
AbstractHessianInput in,
AbstractHessianOutput out)
throws Exception
{
...
Hessian在客户端一块采用Proxy模式,当客户端调用远程接口时,HessianProxy会代理这个动作,在invoke方法中,把客户端请求的方法和参数序列化为预订格式的输出流,主要流程如下图所示:
下面我将详细解析一下invoke源码:
public ...
大致翻了翻源码后,发现hessian的主要结构分客户端与服务端,中间基于http传输。客户端主要做的事情是把对远程接口调用序列化为流,并传输到服务端;服务端主要做的事情是把传输过来的流反序列化为对服务的请求,调用相应服务后把结果序列化为流返回给客户端。一次完整的调用如下图所示:
HessianProxy是hessian client处理客户端请求的核心类,它采用proxy的设计模式,代理客户端对远程接口的调用,hessian client的主流程的时序图如下所示:
HessianSkeleton是hessian server端的核心类,从输入流中返序列化出客户端调用的方法和参数 ...
一、综述本文比较了RMI、Hessian、Burlap、Httpinvoker、WebService5这种通讯协议的在不同的数据结构和不同数据量时的传输性能。RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础。但它只能用于JAVA程序之间的通讯。Hessian ...
Observer模式的意图是“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新”。从这段话里我们可以得到两个信息,如下: 1, 观察者(具体执行操作的对象,有多个) 2, 被观察者(顾名思义是被观察的对象,如果该对象发生某些变化则通知观察者执行对应的操)
这个图是观察者模式的真实体现,在这个图中有两个类,java.util.Observable,在我们实现观察者模式的时候,我们的被观察者应该继承这个类,这个observable类把持住了被观察者所持有的观察者列表:
public class Observable ...
34.return
return 关键字会导致方法返回到调用它的方法,从而传递与返回方法的返回类型匹配的值。
-示例-
public void myVoidMethod(){
<statements>
return;
}
public String myStringMethod(){
String s = "my response"
14.extends
extends 关键字用在 class 或 interface 声明中,用于指示所声明的类或接口是其名称后跟有 extends 关键字的类或接口的子类。
-示例-
public class Rectangle extends Polygon{
}
-注释-
在上例中,Rectangle 类继承 Polygon 类