graniteds复习笔记

graniteds复习笔记
复习笔记,依复习进度记载:
1、为什么选用amf,而不选用json
首先,amf支持数据对象图,比如A对象和B对象都有C对象属性,那么amf时,只有一个C对象,效率比Json高。尤其是recurive时的情景,A对象有List<D>,而D又有A a属性,这种串行化在json里面只能修改为单向关系。
其次:amf好歹是紧促的二进制协议。
再次:我喜欢客户端的强类型模型。

2、TideResponder有什么作用?
首先,能够传递一个token对象,这个对象在resultEvent和faultEvent事件中使用,当然有些人的做法是定义一个类属性来记载这个token对象,不太优雅,建议用TideResponder。
例:var responder:TideResponder=new TideResponder(resultHandler,faultHander,"tokenData");

其次:可以提供一个和服务端返回结果合并的返回对象。
tideContext.productService.findAllProducts(new TideResponder(resultHandler, null, null, products));返回值和products合并,一般要求products为非空,这种合并作用于集合或者对象类型(具有uid属性),但是对简单类型没有作用。

3、Service initializer
Tide remoting应用可以不用service-config.xml配置文件,可以手工定义remoting channels,最简单的就是使用内置的DefaultServiceInitializer,比如在应用创建完毕事件中增加:
Tide.getInstance().addComponentWithFactory("serviceInitializer", DefaultServiceInitializer,
{ contextRoot: "/context-root" }//可以提供serverName和serverPort
);

4、客户端消息拦截器
这个相当有用,aop,可以在所有的远程调用中增加通用行为,比如显示和隐藏等待界面或者设置定制headers,接口见IMessageInterceptor,里面有before和after两个方法需要实现。

5、全局异常处理器
这个比较重要,可以在客户端各个异常码定义通用的处理方法,在服务端可以定义异常转换,将服务端异常转换为通用的异常编码。
需要在服务端定义ExceptionConverter类。当graniteds配置scan=true时,必须确保META-INF/granite-config.properties文件存在,尽管为空。
在flex端,需要定义异常处理类:
public class EntityNotFoundExceptionHandler implements IExceptionHandler {
public function accepts(emsg:ErrorMessage):Boolean {
return emsg.faultCode == "Persistence.EntityNotFound";
}
public function handle(context:BaseContext, emsg:ErrorMessage):void {
Alert.show("Entity not found: " + emsg.message);
}
}
并且在静态初始化块中注册,确保在任何其他操作之前完成注册:
Tide.getInstance().addExceptionHandler(EntityNotFoundExceptionHandler);
6、Tide.showBusyCursor:在执行远程调用时是否显示busy mouse cursor。
    Tide.busy:绑定型属性,用于判断是否正处于远程调用,这个很有用,应用中需要避免误操作多次点击调用。   
    Tide.disconnected:当网络出现错误,将设置为true,每次成功调用,将设置为true,这个属性一般只能做状态显示。

7、per-destination security:可以对每个destination进行安全控制,编写extends DestinationSecuirzer,并在配置文件中进行如下配置:
<destination id="restrictedDestination">
...
<properties>
<securizer>path.to.MyDestinationSecurizer</securizer>
</properties>
</destination>



   


你可能感兴趣的:(graniteds复习笔记)