62
Flex3勉強会第73回@北陸 2009-07-04 Flex’s DIContainer ASphalt2 containerc9katayama

FxUG in Toyama - ASphalt2 container -

Embed Size (px)

DESCRIPTION

FxUG富山での発表スライド。FlexのDIコンテナASphalt2 containerの説明。http://code.google.com/p/asphalt2/

Citation preview

  • 1. Flexs DIContainer ASphalt2 container c9katayamaFlex373 2009-07-04

2. ( )ID c9katayama T2 Project http://t2framework.org/ Flex373 2009-07-04 3. OSS T2 Project (Java F/W) SDLoader ( Java Web Container) ASphalt2Flex373 2009-07-04 4. AgendaASphalt2 conatiner ASphalt2 container Flex373 2009-07-04 5. AgendaASphalt2 containerFlex373 2009-07-04 6. ASphalt2 container ASphalt2 container( ASphalt2(Flex2 UI Framework) DI ->CSS Flex373 2009-07-04 7. ASphalt2 container Apache2 License http://code.google.com/p/asphalt2/ v0_5_00Flex373 2009-07-04 8. Flex373 2009-07-04 9. Flex373 2009-07-04 10. DI Flex373 2009-07-04 11. Flex373 2009-07-04 12. DI / CSS Flex373 2009-07-04 13. DIFlex373 2009-07-04 14. DI DIFlex373 2009-07-04 15. DI CSS AS3 [Inject] [Init]Flex373 2009-07-04 16. /Flex373 2009-07-04 17. BeanFactory CSSBeanFactoryDIvar factory:BeanFactory =CSSBeanFactory.getInstance();//var hoge:IHoge =factory.getBeanByType(IHoge);var foo:IFoo =factory.getBean(foo-foo);Flex373 2009-07-04 18. swc asphalt2container.swcFlex373 2009-07-04 19. Flex373 2009-07-04 20. prototypesingleton singleton //prototypeCSSBeanFactory.getInstance().defaultScope =CSSBeanFactory.SCOPE_PROTOTYPE//CSSCSSBeanFactory{default-scope:prototype;}Flex373 2009-07-04 21. CSSFlex373 2009-07-04 22. CSS //CSSIHoge{bean-type:ClassReference(hoge.impl.HogeImpl);value1:1000;value2:katayama;value3:toyama1,toyama2;}Flex373 2009-07-04 23. CSSpublic class HogeImpl implements IHoge{public var value:int;public var value2:String;IHogepublic car value3:Array;}//CSSIHoge{bean-HogeImpltype:ClassReference(hoge.impl.HogeImpl);#value1:intvalue1:1000; #value2:Stringvalue2:katayama; #value3:Arrayvalue3:toyama1,toyama2;} Flex373 2009-07-04 24. CSS bean-type CSSBeanFactory#getBeanByType()//CSSIHoge{bean-type:ClassReference(hoge.impl.HogeImpl);}//var hoge:IHoge = factory.getBeanByType(IHoge);var hoge:IHoge = factory.getBean(IHoge);Flex373 2009-07-04 25. CSS OK.hoge-hoge{bean-type:ClassReference(hoge.impl.HogeImpl);}var hoge:IHoge = factory.getBean (hoge-hoge); .hoge-hoge .hoge-hoge hoge-hoge hogeHoge Flex373 2009-07-04 26. CSS beanDI${}.hogehoge{bean-type:ClassReference(hoge.impl.HogeImpl);bar:12345;foo:${IFoo};}IFoo{bean-type:ClassReference(foo.impl.FooImpl);}Flex373 2009-07-04 27. CSS ${}DI .hogehoge{bean-type:ClassReference(hoge.impl.HogeImpl);connect-url:${jdbc.url};}jdbc{url: jdbc://oresql/toyama:1919;}Flex373 2009-07-04 28. CSS bean-scope,init-method.hogehoge{bean-type:ClassReference(hoge.impl.HogeImpl);bean-scope:singleton;init-method:init1;}Flex373 2009-07-04 29. CSSFlex373 2009-07-04 30. CSS XMLswf XML CSSClassReference() SWFFlex373 2009-07-04demo 31. CSS XML CSSClassReference()Flex373 2009-07-04 32. CSS CSS Embed() SWFDIFlex373 2009-07-04 33. CSS CSSFlex373 2009-07-04 34. Flex373 2009-07-04 35. CSS Flex373 2009-07-04 36. bind().toType() tovar factory:BeanFactory =CSSBeanFactory.getInstance();factory.bind(IHoge).toType(IHogeImpl);factory.bind(IFoo).toType(IFooImpl) .toPrototypeScope();var hoge:IHoge = factory.getBeanByType(IHoge);Flex373 2009-07-04 37. bind().toInstance() var factory:BeanFactory =CSSBeanFactory.getInstance();factory.bind(IHoge).toInstance(new IHogeImpl());var hoge:IHoge = factory.getBeanByType(IHoge);Flex373 2009-07-04 38. bindConstant()var factory:BeanFactory =CSSBeanFactory.getInstance();factory.bindConstant(yone.address,);yone.addressFlex373 2009-07-04 39. swf MixInBeanFactoryFlex373 2009-07-04 40. Flex373 2009-07-04 41. bean Flex373 2009-07-04 42. [Inject]DI DI // IHoge[Inject]public var hoge:IHoge;Flex373 2009-07-04 43. namerequiredname CSS,bind requiredtrueFlex373 2009-07-04 44. [Inject(hoge)]public var hoge:IHoge;[Inject(name=hoge)] //public var hoge:IHoge;[Inject(name=yone.address,required=true)]public var hoge:IHoge;Flex373 2009-07-04 45. Init DI [Init]public function initialize():void{}Flex373 2009-07-04 46. Flex373 2009-07-04 47. CSSOK OK CSSDI Flex373 2009-07-04 48. Flex373 2009-07-04 49. Flex373 2009-07-04 50. public interface UserAuthServiceextends IEventDispatcher{function executeAuth(user:User):void;}Flex373 2009-07-04 51. public class DuyUserAuthServiceextends EventDispatcherimplements UserAuthService {public function executeAuth(user:User):void{dispatchEvent(new ResultEvent(OK));}}Flex373 2009-07-04 52. public class ServerConnectAuthServiceextends EventDispatcher implements UserAuthService{public var url:String;public var connect:URLConnect;public function executeAuth(user:User):void{connect.load(url,handleResult);}private function handleResult(e:ResultEvent):{ dispatchEvent(e);}}Flex373 2009-07-04 53. UserAuthService{bean-type:ClassReference(DuyUserAuthService);}UserAuthService{bean-type: ClassReference(ServerConnectUserAuthService);url:http://www.livedoor.co.jp;}Flex373 2009-07-04 54. var factory:BeanFactory = CSSBeanFactory.getInstance();var service:UserAuthService = factory.getBeanByType(UserAuthService);service.addEventListener(ResultEvent.RESULT,handleResult);service.executeAuth(user);Flex373 2009-07-04 55. Flex373 2009-07-04 56. var factory:BeanFactory = CSSBeanFactory.getInstance();factory.addEventListener(Event.COMPLETE,handle);factory.loadModule(config-module.swf); Flex373 2009-07-04 57. Flex373 2009-07-04 58. var factory:BeanFactory = CSSBeanFactory.getInstance();factory.inject(this); Flex373 2009-07-04 59. public class Control implements IMXMLObject{[Inject(prop.hoge)]public var hoge:String;[Inject]public var service:IService;public function initialized(document:Object, id:String):void{ CSSBeanFactory.getInstance().inject(this);}}Flex373 2009-07-04 60. Flex373 2009-07-04 61. DI DIFlex373 2009-07-04 62. Flex373 2009-07-04