文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>swiz配置指南

swiz配置指南

时间:2010-04-18  来源:sinkingboat

   SwizConfig tag用于配置swiz,其格式如下
  <swizframework:SwizConfig xmlns:swizframework="org.swizframework.*"
    strict="true"
    eventPackages="example.event"
    mediateBubbledEvents="true"
    viewPackages="example.view"
    beanLoaders="{[Beans]}"
    serviceCallFaultHandler="{genericFault}"
    logEventLevel="{LogEventLevel.WARN}"
  />

   strict和eventPackages 与如何处理事件类型相关。
   strict标签的作用是定义哪种动态mediator。如果你设置为false,metadata标签将描述实际的
事件名称,使用这个模式,你可以定义你的mediators如下:
    [Mediate(event="myFooEvent")]
    public function doFoo():...

    正如所见,你定义了一个由事件的名称作为中介,而不是任何一个常量。这个方法并不能让swiz去确认你所描述的事件名在应用系统中已存在。为了避免这个问题,你可以将strict属性设置成true。
   当strict设置成true,在你的mediate metadata/annotation中所描述的事件将在runtime时检查。你必须在eventPackages 属性中设置event package包,多个事件包用逗号隔开。

   根据上面的配置文件,strict被设置成true,而且eventPackages也存在,可以在一个方法上定义一个动态mediator:
    [Mediate(event="FooEvent.FOO")]
    public function doFoo():...
   swiz首先查找类"example.event.FooEvent",因为配置文件中描述了"example.event"。如果能在example.event包里找到FooEvent类并且有事件名常量"FOO",swiz将进行绑定,否则抛出一个错误。

    .如果你设置的mediateBubbledEvents为true,你可以从任一视图中抛出这个事件,swiz将抓住并唤醒所有相关的动态mediaor。其实质是swiz将监听所有的事件以确认任何一个mediate相应的事件类型。如果发现了一个,它将自动通过中心EventDispatcher重新抛出。这就意味着视图不必通过swiz派发事件,或者说与swiz的事件派发特征没有直接的耦合。这个视图可以使用内部dispatchEvent()方法派发标准事件。

    .你可以定义"viewPackages "以优化性能。每次从view package创建一个视图。它将内省[Autowire]和[Mediate]元标签。你可以定义多个view packages,如下所示:
    viewPackages="{['package1', 'package2']}"
    注意:package1和package2仅仅是路径,不能写成"com.user.view.*"

    .对于调用executeServiceCall()错误,你可以在main mxml中定义一个serviceCallFaultHandler方法用作统一错误处理。在上面的配置文件中,如果在你的服务调用过程中出现错误,swiz将运行genericFault()方法

    .swiz使用内部Flex logging API,你也可以定义一个特殊的logEventLevel标识抓住哪一种级别的事件。默认为LogEventLevel.WARN.

参考文献:
1.http://swizframework.org/docs/configuration/
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载