AS3----Spring 框架学习笔记(一)----xml标签解析
xml配置文件的标签:
下表是在配置文件中常用的一些标签以及相关的说明和用法
术语 | 说明 | 代码示例 |
---|---|---|
${变量名} | 你可以把一些变量分离出来写在单独的文本文件中,然后在配置中引用这些变量,这样最大的好处是你可以把配置信息比如Server端的连接地址放在单独的文件中,方便修改和维护 |
新建global.prop文本文件,写入: variable1=10 在配置中引用: ${variable1} |
object | 在XML配置中,每一个对象用Object来表示,然后分别用id和class代表唯一标示和类的名称 | <object id="obj" class="mx.ctrol.Button" /> |
property | 你可以使用property为对象的属性复制,这也是IoC的精髓,即从这里把依赖注入到对象。name就是属性的名称,而value就是你要赋予的具体的值 |
<object ... > <property name="name" value="Fiona Apple"/> </object> |
ref | 除了可以直接赋值,你也可以通过使用ref在属性中引用别的对象 |
<object id="a" .../> <object ... > <property name="name" ref="a"/> </object> |
constructor-arg | 如果你的对象实例化的时候需要从构造函数中传入参数,那么可以使用这个属性,将所需的参数传递进去 |
<object ... > <constructor-arg> </object> |
factory-method | 工厂方法,含义是不使用new对这个Object进行实例化,而是调用这个类的静态方法,可用于单例模式的实现 | <object id="a" class="A" factory-method="getInstance" /> |
dictionary | 相当于AS3中的Dictionary,你可以在配置中声明一个Dictionary对象 | <dictionary> <entry> <key>development</key> <value>dx</value> </entry> </dictionary> |
array | 同样,你可以在配置中声明一个数组对象 | <array> <value>ssnce</value> <value><ref object="s"/></value> </array> |
array-collection | 对应Flex中的ArrayCollection,当然只有Flex的应用才可以使用这个配置方式 | <array-collection> <value>ssnce</value> <value><ref object="s"/></value> </array-collection> |
depends-on | 定义依赖关系,含义就是先初始化它的依赖,然后初始化自己 | depends-on="manager,accountDao" |
lazy-init | 如果值为true,则不马上初始化,而是在第一次调用的时候才初始化 | <object ... lazy-init="true"/> |
autowire |
自动装配,Spring ActionScript支持自动装配,含义就是你只要声明某个对象为自动装配,它就会按照规则自动去寻找这个对象的依赖并注入给它,而不需要手工操作。 默认是no,可以选择byName,byType,constructor,autodetect来自动装配对象的依赖。使用自动装配时,应当权衡利弊,合理的与ref的方法相结合,尽量在降低工作量的同时,保证应用的可维护度 |
<object ... autowiret="byName"/> |
singleton | 一个布尔量,对一个对象而言,这个属性的设置为True则只创建一个实例,false则每次调用都创建新的实例 | <object ... singleton="true"/> |
init-method | 初始化方法,含义是创建实例后,调用实例的这个方法进行初始化 | init-method="init" |
method-invocation | 调用对象的方法 | <method-invocation name="init"/> |
abstract | 定义继承关系,你可以将一个对象的abstract属性设置为true,然后在另一个对象中定义parent=这个对象,含义就是继承原对象的所有的属性 | <object id="inheritedTestObject" abstract="true"> <property name="name" value="parent"/> <property name="age" value="1"/> </object> <object id="inheritsWithDifferentClass" class="org.springactionscript.objects.DerivedTestObject" parent="inheritedTestObject" init-method="initialize"> <property name="name" value="override"/> <!-- the age property value of 1 will be inherited from parent --> </object> |
template | 你可以将重复性的设置工作定义为模板,然后其它对象就可以使用这个模板 | <template id="remoteObject"> <object class="mx.rpc.remoting.mxml.RemoteObject"> <property name="makeObjectsBindable" value="${makeBindable}"/> </object> </template> <object id="concreteService" template="remoteObject"> <param name="makeBindable" value="false"/> </object> |
application | Flex专属属性,你可以通过配置下面这个对象:<object class="org.springextensions .actionscript.ioc. factory. config.flex. ApplicationPropertiesResolver"/>,然后就可以在其他的配置中使用application这个变量,使用方式是:${application.url} |
|