Spring ActionScript入门学习-配置文件之property属性工程目录如下:好不容易把代码贴上发现iteye自动将代码标题首字母转换为大写,我也就不改了,在这个例子中遇到的主要问题应该是
Error: A class with the name 'org.springextensions.actionscript.ioc.factory.config.flex.FlexPropertyPlaceholderConfigurer' could not be found.Are you sure the specified class has been compiled? Look for more information on this topic here: http://www.springactionscript.org/docs/reference/html/class-inclusion.html at org.springextensions.actionscript.ioc.factory.support::DefaultListableObjectFactory/getObjectNamesForType()[C:\projects\tmp\spring-actionscript-core\src\main\actionscript\org\springextensions\actionscript\ioc\factory\support\DefaultListableObjectFactory.as:104] at org.springextensions.actionscript.context.support::AbstractApplicationContext/registerObjectPostProcessors()[C:\projects\tmp\spring-actionscript-core\src\main\actionscript\org\springextensions\actionscript\context\support\AbstractApplicationContext.as:319] at org.springextensions.actionscript.context.support::AbstractApplicationContext/loadComplete()[C:\projects\tmp\spring-actionscript-core\src\main\actionscript\org\springextensions\actionscript\context\support\AbstractApplicationContext.as:286] at org.springextensions.actionscript.context.support::XMLApplicationContext/parse()[C:\projects\tmp\spring-actionscript-core\src\main\actionscript\org\springextensions\actionscript\context\support\XMLApplicationContext.as:398] at org.springextensions.actionscript.context.support::XMLApplicationContext/loadNextConfigLocation()[C:\projects\tmp\spring-actionscript-core\src\main\actionscript\org\springextensions\actionscript\context\support\XMLApplicationContext.as:436] at org.springextensions.actionscript.context.support::XMLApplicationContext/loader_completeHandler()[C:\projects\tmp\spring-actionscript-core\src\main\actionscript\org\springextensions\actionscript\context\support\XMLApplicationContext.as:370] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.net::URLLoader/onComplete()
这个原因是flex本身的限制,在flex--Demo1文件中加上以下代码
private var propholder:FlexPropertyPlaceholderConfigurer;这个类才会被编译。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="creationHandler(event)" > <fx:Script> <![CDATA[ import cn.lmx.service.UserService; import mx.controls.Alert; import org.springextensions.actionscript.context.support.XMLApplicationContext; import org.springextensions.actionscript.ioc.factory.config.flex.FlexPropertyPlaceholderConfigurer; //在service.xml附加属性文件 [Embed(source="resource/application-context.xml",mimeType="application/octet-stream")] private var contextConfig:Class; private var applicationContext:XMLApplicationContext; private var propholder:FlexPropertyPlaceholderConfigurer; private function creationHandler(event:Event):void{ applicationContext = new XMLApplicationContext(); applicationContext.addEmbeddedConfig(contextConfig); applicationContext.load(); } private function printUser():void{ var userService:UserService = applicationContext.getObject("userService") as UserService; Alert.show(userService.toString()); } ]]> </fx:Script> <fx:Declarations> </fx:Declarations> <s:Button label="Print User" click="printUser()"/> </s:Application>
package cn.lmx.service{ import mx.controls.Alert; public class UserService { private var _username:String; private var _password:String; public function UserService(username:String, password:String) { this._username = username; this._password = password; super(); } public function get username():String { return _username; } public function set username(value:String):void { _username = value; } public function get password():String { return _password; } public function set password(value:String):void { _password = value; } public function save():void{ Alert.show("this is this class userservice's save function"); } public function toString():String{ return this._username+":"+this._password; } } }
<?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-1.0.xsd"> <property file="resource/resource.properties" prevent-cache="true"/> <import file="resource/service.xml" /> </objects>
<?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-1.0.xsd"> <object id="userService" class="cn.lmx.service.UserService"> <constructor-arg value="${username}"></constructor-arg> <constructor-arg value="${password}"></constructor-arg> </object> </objects>
username=xxx password=yyy