AS3 IOC框架Spring Actionscript 的使用总结
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容器。
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 如何注入第三方库中的对象
[Configuration]
public final class AppConfig {
public var stageAutowireProcessor:DefaultAutowiringStageProcessor;
public var eventHandlerMetadataProcessor:EventHandlerMetadataProcessor;
public var routeEventsMetadataProcessor:RouteEventsMetaDataProcessor;
}
Reference:
原文链接:http://blog.csdn.net/jiangguilong2000/article/details/9705479
AS3 IOC框架Spring Actionscript 的使用总结的更多相关文章
- [转]Flash、Flex、AS3.0框架及类库资源收集之十全大补
原文地址:http://www.d5power.com/portal.php?mod=view&aid=27 APIs.Libs.Components1.as3ebaylibhttp://co ...
- [Spring框架]Spring IOC的原理及详解。
这里感谢 CSDN 的原博客:http://blog.csdn.net/m13666368773/article/details/7802126 看后 受益匪浅,这里再重温一遍Spring IOC ...
- 从零开始手写 spring ioc 框架,深入学习 spring 源码
IoC Ioc 是一款 spring ioc 核心功能简化实现版本,便于学习和理解原理. 创作目的 使用 spring 很长时间,对于 spring 使用非常频繁,实际上对于源码一直没有静下心来学习过 ...
- JavaWeb_(Spring框架)Spring中IoC与DI概念入门
Spring是于2003 年兴起的一个轻量级的Java 开源框架,它由Rod Johnson创建.传统J2EE应用的开发效率低,Spring作为开源的中间件,提供J2EE应用的各层的解决方案,Spri ...
- IOC框架
一. IOC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果我们打开机 ...
- 转:IOC框架
CSND上看了王泽滨的博客关于IOC的,觉得说的很透彻,地址为:http://blog.csdn.net/wanghao72214/article/details/3969594 1 IoC理论的背景 ...
- 各大主流.Net的IOC框架性能测试比较
Autofac下载地址:http://code.google.com/p/autofac/ Castle Windsor下载地址:http://sourceforge.net/projects/cas ...
- [Spring框架]Spring开发实例: XML+注解.
前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...
- 初识轻量级Java开源框架 --- Spring
初识轻量级Java开源框架 --- Spring 作者:egg 微博:http://weibo.com/xtfggef 出处:http://blog.csdn.net/zhangerqing spri ...
随机推荐
- 如何解决jenkins中shell脚本明明执行失败却不自行退出,且构建结果仍然显示success的问题??
首先,需要明确shell命令执行结果$?为0或者非0仅能代表此执行语句是否顺利执行了,例如: 执行语句:adb connect 192.168.XX.XX 执行结果:unable to connect ...
- [转载]MongoDB学习 (五):查询操作符(Query Operators).1st
本文地址:http://www.cnblogs.com/egger/archive/2013/05/04/3059374.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑! 查询操作符(Quer ...
- sqlite优化记录:建立索引加快查询速度
凡是数据库中,索引的存在就是为了提高查询速度的,数据库的索引有点类似于书本上面的目录的概念,因为在英文中都是index,事实上也就是目录. 其算法应该叫做“倒排索引”,这个其实也类似于搜索引擎里面的基 ...
- [codility]Falling-discs
http://codility.com/demo/take-sample-test/omega2013 这题有点意思.首先经过思考,想到从底部往上扫,去迎接掉下来的disc.但这样仍然是不行的.后来看 ...
- Google的代码风格规范,各种语言都很全
https://code.google.com/p/google-styleguide/
- linux设备驱动那点事儿之平台设备理论篇
一:Platform总线 1.1概述 一个现实的linux设备驱动通常需要挂接在一种总线上,对于本身依附于PCI,USB,IIC,SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SOC系统中 ...
- linux,Centos,bash: service: command not found
很简单,这个问题是这样的,su 或者 su root:的话只是将当前身份转为root,用户shell并没有改变.所以有些系统命令不能使用. su -或者su -l或者su -l root,可以完全的将 ...
- bzoj2565
网络流就先告一段落了 在进行其他训练之前,我决定先练一道后缀数组(对这个我还是比较有自信的) 虽然之前没用后缀数组解决过回文问题,但是稍微想想就知道, 要解决最长双倍回文,首先要解决最长回文序列, 要 ...
- BZOJ_1606_ [Usaco2008_Dec]_Hay_For_Sale _购买干草_(背包)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1606 价值和重量相等的01背包问题. 分析 ... #include <bits/std ...
- 修改NGINX版本名称为任意WEB SERVER
下载好Nginx的安装文件nginx-1.6.0.tar.gz,并把它解压. wget http://nginx.org/download/nginx-1.6.0.tar.gz .tar.gz 然后我 ...