Spring Actionscript 是众多围绕依赖注入提供解决方案的Flex控制反转框架之一

AS3 下经典的IOC框架有Spring ActionScript、Parsley、Flicc和Swiz,由于我对JAVA spring IOC机制较为熟悉,所以选择了 Spring ActionScript。

主要有XML配置(XML)和注释元数据(Metadata)配置两种方式,下面一一介绍,例子是基于spring AS 2.0.1版本展开的。--流子

1.从Spring Actionscript 主页下载依赖包

spring-actionscript-core-X.X.X.swc

spring-actionscript-flex-X.X.X.swc

另有as3commons依赖包需要下载。建议下载这个

Spring Actionscript X.X.X Full (with dependencies and Flex extensions)

2.1 XML配置方式

配置文件application-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<objects xmlns="http://www.springactionscript.org/schema/objects"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springactionscript.org/schema/objects
http://www.springactionscript.org/schema/objects/spring-actionscript-objects-2.0.xsd">
<object id="ConfigManager" class="com.yimi.fairy.client.ConfigManager"
init-method="initialize">
<!--<constructor-arg ref="authenticationService"/> 构造函数时引入 -->
</object>
<object id="RoleManager" class="com.yimi.fairy.client.service.role.RoleManager"
init-method="initialize">
<property name="configManager" ref="ConfigManager" />
</object>
<object id="ResourceManager" class="com.yimi.fairy.client.res.ResourceManager"></object>
<object id="JobManager" class="com.yimi.fairy.client.job.JobManager"></object>
<object id="RoleDataTemplateManager" class="com.service.role.RoleDataTemplateManager">
<constructor-arg ref="ResourceManager"/>
</object>
</objects>

程序载入:

var context:XMLApplicationContext=new XMLApplicationContext("application-context.xml");
context.addEventListener(Event.COMPLETE, this.handleComplete);
context.load();

对容器中对象读取:

var configManager:ConfigManager=context.getObject("ConfigManager");

2.2 注释元数据(Metadata)配置方式

优点:把application-context.xml 完全干掉,完全通过注释方式实现。它是对加载进来的SWF文件进行类扫描把[Component] 或者[Configuration] 读取并解析进IOC容器。

首先,要添加编译参数 -keep-as3-metadata+=Component,Invoke,Inject,Autowired
程序载入
var rootViews:Vector.<DisplayObject> = new <DisplayObject>[display];
var context:MetadataApplicationContext= new MetadataApplicationContext(rootViews);
context.addEventListener(Event.COMPLETE, this.handleComplete);
context.load();

对象配置:

[Component(id="roleDataTemplateManager",initMethod="initialize")]
public class RoleDataTemplateManager implements IResourceLoader
{
[Autowired]
public var resourceManager:ResourceManager;
public function initialize():void
{
resourceManager.register(this);
}
}

注意注入进去的对象必须是public,否则注不进去。

对象读取:

var configManager:ConfigManager=context.getObject("configManager");

2.3 如何注入第三方库中的对象

创建一个对象,比如AppConfig
[Configuration]
public final class AppConfig {
public var stageAutowireProcessor:DefaultAutowiringStageProcessor;
public var eventHandlerMetadataProcessor:EventHandlerMetadataProcessor;
public var routeEventsMetadataProcessor:RouteEventsMetaDataProcessor;
}

Reference:

Spring AS Document

原文链接:http://blog.csdn.net/jiangguilong2000/article/details/9705479

AS3 IOC框架Spring Actionscript 的使用总结的更多相关文章

  1. [转]Flash、Flex、AS3.0框架及类库资源收集之十全大补

    原文地址:http://www.d5power.com/portal.php?mod=view&aid=27 APIs.Libs.Components1.as3ebaylibhttp://co ...

  2. [Spring框架]Spring IOC的原理及详解。

    这里感谢 CSDN 的原博客:http://blog.csdn.net/m13666368773/article/details/7802126 看后  受益匪浅,这里再重温一遍Spring IOC ...

  3. 从零开始手写 spring ioc 框架,深入学习 spring 源码

    IoC Ioc 是一款 spring ioc 核心功能简化实现版本,便于学习和理解原理. 创作目的 使用 spring 很长时间,对于 spring 使用非常频繁,实际上对于源码一直没有静下心来学习过 ...

  4. JavaWeb_(Spring框架)Spring中IoC与DI概念入门

    Spring是于2003 年兴起的一个轻量级的Java 开源框架,它由Rod Johnson创建.传统J2EE应用的开发效率低,Spring作为开源的中间件,提供J2EE应用的各层的解决方案,Spri ...

  5. IOC框架

    一. IOC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机 ...

  6. 转:IOC框架

    CSND上看了王泽滨的博客关于IOC的,觉得说的很透彻,地址为:http://blog.csdn.net/wanghao72214/article/details/3969594 1 IoC理论的背景 ...

  7. 各大主流.Net的IOC框架性能测试比较

    Autofac下载地址:http://code.google.com/p/autofac/ Castle Windsor下载地址:http://sourceforge.net/projects/cas ...

  8. [Spring框架]Spring开发实例: XML+注解.

    前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...

  9. 初识轻量级Java开源框架 --- Spring

    初识轻量级Java开源框架 --- Spring 作者:egg 微博:http://weibo.com/xtfggef 出处:http://blog.csdn.net/zhangerqing spri ...

随机推荐

  1. jna 使用实例,

    有与项目组需要用到C++的一个模块, 需要将一个2维数组传到dll 里面 ,返回一个字符串, 恶心了1天终于完成了, 记录一下,同时也希望能给你带来帮助. java 代码如下, package tes ...

  2. 简单的map转换成Bean的工具

    简单的map转换成Bean的工具 package com.sd.microMsg.util; import java.lang.reflect.Field; import java.lang.refl ...

  3. csdn搜索技巧

    由于CSDN下载资源高级搜索,只能显示10页分页,所以我们换种方法去搜索csdn的资源. 第10页以后没了. 在百度框里面输入如下: jquery site:download.csdn.net 图:

  4. Hansight

    http://www.hansight.com/scenarios.html#account

  5. HDU 2986 Ballot evaluation(精度问题)

    点我看题目 题意 : 给你n个人名,每个名后边跟着一个数,然后m个式子,判断是否正确. 思路 :算是一个模拟吧,但是要注意浮点数容易丢失精度,所以要好好处理精度,不知道多少人死在精度上,不过我实在是不 ...

  6. 如何让centos6.5在vm11里上网,连接网络?

    如何让centos在vm里连接网络?步骤有3,方可解决: 1.配置vm的虚拟网络编辑器 2.配置虚拟机centos 3.设置centos的ip地址 一.配置vm的虚拟网络编辑器

  7. 二层安全之MAC Flooding解析与解决方法

    一.了解MAC Flooding原理 1.1 如图所示,网络中有3个PC和一个交换机,在正常情况下,如果PC A向PC B发送信息,PC C是不会知道的,过程都通过中间的交换机进行透明的处理,并且会记 ...

  8. [Android] 修改设备访问权限

    在硬件抽象层模块中,我们是调用open函数来打开对应的设备文件的.例如,在2.3.2小节中开发的硬件抽象层模块freg中,函数freg_device_open调用open函数来打开设备文件/dev/f ...

  9. C#开发漂亮的数字时钟

    今天用C#做了一个漂亮的数字时钟.界面如下. 实现技术:主要是通过Graphics类的DrawImage方法来绘制数字时钟中所有的数字,这些数字是从网上找的一些图片文件.时钟使用DateTime中No ...

  10. CH Round #17 舞动的夜晚

    舞动的夜晚 CH Round #17 描述 L公司和H公司举办了一次联谊晚会.晚会上,L公司的N位员工和H公司的M位员工打算进行一场交际舞.在这些领导中,一些L公司的员工和H公司的员工之间是互相认识的 ...