Parsley 很强大,文档 API 也很丰富,不过网上完整实例太少了。因此我决定结合 Parsley 文档,用简单实例来讲述 Parsley 的特性。Parsley 支持 Flash 和 Flex,当然更常见的是使用 Parsley 开发 Flex 企业应用,我们也主要以讲解 Parsley Flex 的用法为主。至于 Parsley Flash 的用法,大家可参考官方文档。本文将用一个类似 HelloWorld 的简单实例讲述创建 Parsley Flex 应用的基本流程以及 Parsley 的依赖注入。如果你使用 Flash,你要去看一下相应文档和 API。
基本流程
- 添加框架 SWCs
开始用 Parsley 开发首先你需要添加一些 SWCs 到你的下。先下载 Parsley Core 并从 release
和相关的文件夹下添加所需要的 SWCs
到你的构建路径下。你会在下载的 Zip 文件的 release
文件夹下找到它们。如下图所示:
- 定义对象依赖
这可能是 Parsley 使用最频繁的特性。依赖关系可以用元数据标签、MXML、XML 或者编程来配置。最简单的是使用 [Inject]
元数据标签,你可以在属性上使用它,如本实例的代码片段:
[Inject]
public var sharedModel:SharedModel;
Parsley 读到 [Inject]
之后会在当前的上下文中查找是否有托管的对象匹配这里的 SharedModel 类型,如果有它就把托管的对象赋值(注入)给这个变量。
- 托管对象
在你给类添加元数据标签后,你必须告诉容器哪些对象应该管理。在 Flex 中用得最多的是使用 MXML/XML 配置。你可以创建一个简单的 MXML 类,然后添加所有你希望被 Parsley 管理的类,一般都是模型类。如本实例的代码片段:
<?xml version="1.0" encoding="utf-8"?>
<parsley:Objects xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:parsley="http://www.spicefactory.org/parsley" xmlns:model="model.*">
<fx:Declarations>
<model:SharedModel/>
</fx:Declarations>
</parsley:Objects>
SharedModel 可以是你希望托管的任何对象类型。每个托管对象将由 Parsley 管理,这样就可以使用 Parsley 框架的所有功能,包括消息传递、自动的创建销毁、注入等。
装配视图
Parsley 不知道视图的注入点,除非我们直接告诉它。要做到这一点,需要将视图直接装配到它的上下文中。最简单的方式就是使用 <Configure />
标签,该标签表明这个视图是要用 Parsley 管理的。它会触发一个冒泡事件,Parsley 接收到这个事件才会执行对视图的一系列处理。否则注入不会生效。如本实例中的 SenderView 和 ReceiverView 都添加了 <Configure />
标签。
初始化框架
现在,你已经用元数据配置类并且装配到视图中,终于到初始化它的时间了。幸运的是,在大多数情况下,这只需要使用一行代码或一个简单的标签。如本实例的代码片段:
<fx:Declarations>
<parsley:ContextBuilder config="{AppConfig}"/>
</fx:Declarations>
这就是所有的东西。可以把标签写到任何一个你希望作为上下文的根视图中。在本实例中我们把标签写到 MXML 入口程序中,其实是创建了 application
级别的 singleton
对象。标签有一些选项,最重要的是 config
选项,它用来指示配置文件的位置。本实例 config
文件是一个用来描述托管对象的 MXML 配置文件。使用 MXML 有一个好处是托管对象一定会被装配到最终的 swf 中。本实例的工程结构应该是这样的:
点击此处 下载该实例的源码。
注意要点
- Parsley 除了属性依赖注入,还支持构造方法和普通方法注入。对方法使用
[Inject]
元数据标签可以一次声明多个依赖关系。 - 要使注入生效,被注入的属性方法必须是
public
的。 - 如果 Parsley 通过对象
ID
选择依赖,配置文件中托管对象必须设置唯一的相应ID
。通常[Inject]
元数据标签更适用于通过类型注入,而不是通过 ID 注入,但对于 RemoteObject 是个例外。 - 依赖注入是需要时间的,注入的对象可能不能立即使用。甚至在视图
creationComplete
事件发生后,你的托管对象可能仍然是空的。所以需要使用[Init]
元数据标签来指定完成注入后要执行的回调方法。 - 可以让 Parsley 自动装配视图而不需要使用
<Configure>
标签,我们稍后的时候再介绍。
参考文档
要更多了解 Parsley 依赖注入,请查看 Parsley 文档相应部分。
评论 (0)