常用Flex IOC框架比较分析
2009-10-09 00:00:00 来源:WEB开发网ContextLoader在幕后实现对Spring ActionScript上下文的加载:
public static function set contextPath( value : String ) : void
{
_contextPath = value;
applicationContext = new XMLApplicationContext( _contextPath );
applicationContext.addEventListener( Event.COMPLETE, handleLoadComplete );
applicationContext.load();
}
接着在需要依赖的视图中,我创建一个Inject标签(受一个同事在Parsley中实现的启发)。利用这个标签,我可以很方便的声明我需将何种依赖添加到该视图。例如,在应用启动时,我有如下代码:
<springActionscript:Injectproperty="pm"objectId="{ ContextIds.MAIN_CONTAINER_PM }"/><springActionscript:Injectproperty="controller"objectId="{ ContextIds.CONTROLLER }"/>
这将向XMLApplicationContext请求一个ID为CONTROLLER的对象,并将它赋给视图中的成员变量controller。
这是在视图层获取对象的好办法。
说明:Christophe Herreman曾撰文说明如何用metadata实现上述类型的注入(类似Swiz框架),但这种方法有性能问题,因为要读取元数据,视图需序列化为XML。
设置控制器
Spring ActionScript已计划发布一个支持MVCS的的扩展版。但在目前版本中,我将实现一个自有的控制器,并利用Spring ActionScript将处理程序挂接到事件源。
在最初的程序中,控制器会监听所有事件。当它截获到一个事件后,会查找所有处理器,筛选出能处理这个事件的对象。在经过修改后的例子中,不再监控整个显示列表,转而在application-context.xml中将事件源和事件处理器配对。
更多精彩
赞助商链接