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. UrlConnection doPost Https请求 、编码设置

    UrlConnection doPost Https请求 .编码设置 UrlConnection doPost方法 /** * 发送POST请求 * * @param url 请求地址url * @p ...

  2. poj 3261 Milk Patterns(后缀数组)(k次的最长重复子串)

    Milk Patterns Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7938   Accepted: 3598 Cas ...

  3. css中文本框与按钮对不齐解决方案

    我们先对对input标记设定样式,代码如下: html 代码 <form> <input type=”text” name=”text1” id=”text1” /> < ...

  4. HTML中的转义字符

    HTML常用符号: 显示一个空格    < 小于 < <> 大于 > >& &符号 & &" 双引号 " &qu ...

  5. BZOJ 3990 [SDOI 2015] 排序 解题报告

    这个题哎呀...细节超级多... 首先,我猜了一个结论.如果有一种排序方案是可行的,假设这个方案是 $S$ . 那么我们把 $S$ 给任意重新排列之后,也必然可以构造出一组合法方案来. 于是我们就可以 ...

  6. POJ 2375 Cow Ski Area[连通分量]

    题目链接:http://poj.org/problem?id=2375题目大意:一片滑雪场,奶牛只能向相邻的并且不高于他当前高度的地方走.想加上缆车是的奶牛能从低的地方走向高的地方,求最少加的缆车数, ...

  7. C#中文转换成拼音英文

    #region 0.1 中文转到英文 + static string GetPinYing(string characters) /// <summary> /// 中文转到英文 /// ...

  8. Java泛型反射机制(二)

    /** * @author Administrator * 好处:泛型:1安全 2减少代码重用率 */ package com.test; import java.lang.reflect.Metho ...

  9. 转:HTTP请求(GET、POST和soap区别)和响应

    一直对Http请求和SOAP请求不是太理解,只是知道SOAP是基于Http的,并且增加了很多XML标签,SOAP经常用在WebService中,比如在C#中创建一个WebService,然后在客户端生 ...

  10. leetcode面试准备:Implement Trie (Prefix Tree)

    leetcode面试准备:Implement Trie (Prefix Tree) 1 题目 Implement a trie withinsert, search, and startsWith m ...