Flex’s DI Container
      〜DI Container徹底⽐較〜


                             yone098
Flex3勉強会第73回@北陸 2009‐07‐04
⾃⼰紹介
名前
  ⽶林    正明(よねばやし             まさあき)
ID
  yone098
所属
  T2 Project http://t2framework.org/
  株式会社Abby 代表取締役社⻑
     ht...
⾃⼰紹介

 出⾝
   富⼭県富⼭市
 宣伝
   絶賛社員募集中(恵⽐寿勤務)
   株式会社ヌーラボでも社員募集中




Flex3勉強会第73回@北陸 2009‐07‐04
⾃⼰紹介

 Flex歴
   Secret
 OSS
   T2 Project(ver0.6 AMF)
   Seasar2, Teeda, S2JSF
 まとめ
  I ❤ Toyama

Flex3勉強会第73回@北陸 2009‐07‐...
Agenda
What is DI Container?
Flex’s DI Container
  PranaFramework
    SpringActionScript
  SmartyPants IOC
  swizframework...
What is DI Container?



Flex3勉強会第73回@北陸 2009‐07‐04
What’s DI Container?
DI Container
  Dependency Injection
    依存性の注⼊
  Component管理
    newしない
  ⼤きな連想配列
    HashMapのお化けをイメー...
What’s DI Container?
Java DI Container
  Seasar2
    http://www.seasar.org/
  Spring
    http://www.springsource.org/
  Gu...
Flex’s DI Container



Flex3勉強会第73回@北陸 2009‐07‐04
Flex’s DI Container
Flex’s DI Container
  PranaFramework
    http://www.pranaframework.org/
  SmartyPants IOC
    http://c...
Flex’s DI Container
 inspired
Flex DI Container   Java DI Container
PranaFramework      Spring
SmartyPants IOC     Guice
s...
Flex’s DI Container
  License
Flex DI Container   License
PranaFramework      ASL2.0
SmartyPants IOC     New BSD License
s...
Prana Framework
       SpringActionscript



Flex3勉強会第73回@北陸 2009‐07‐04
SpringActionscript
Prana Framework
  現在は,SpringExtensionsProject傘下
    http://www.springsource.org/extensions/se‐springact...
break
              Cairngorm




Flex3勉強会第73回@北陸 2009‐07‐04
Cairngorm
Cairngorm(けあんごーむ)
  Flex⽤clientサイドフレームワーク
     http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm
  Vi...
break
               PureMVC




Flex3勉強会第73回@北陸 2009‐07‐04
PureMVC
PureMVC
  Flex⽤clientサイドフレームワーク
    http://puremvc.org
  Cairngormの⽋点を⾒直して作られたMVCモデル
  Model
     Proxyクラス/ValueOb...
back
         SpringActionscript




Flex3勉強会第73回@北陸 2009‐07‐04
SpringActionscript
build
  trunk co
    https://src.springframework.org/svn/se‐springactionscript‐as/spring‐actionscript/t...
SpringActionscript
dependency
  依存ライブラリを追加
  Dependency library
  as3commons‐lang.swc       download
  as3commons‐logging....
build ok
         SpringActionscript




Flex3勉強会第73回@北陸 2009‐07‐04
break
          Flex with maven2




Flex3勉強会第73回@北陸 2009‐07‐04
flex with maven2
   flexmojos
      Flex maven2 project
         http://blog.flex‐mojos.info/
<repository>
  <id>flex‐mojo...
flex with maven2
AS3Commons Project
  http://www.as3commons.org/
AS3Commons Reflect
  reflection API for ActionScript3.0
 ...
flex with maven2
  AS3Commons Reflect Dependencies
GroupId                    ArtifactId                 type

com.adobe.f...
back
         SpringActionscript




Flex3勉強会第73回@北陸 2009‐07‐04
SpringActionscript

Getting Started
  Simple example



             Step1


Flex3勉強会第73回@北陸 2009‐07‐04
SpringActionscript
   applicationContext.xml
      Regist component
<?xml version="1.0"?>
<objects xmlns="http://www.prana...
SpringActionscript

scope
  prototype
    getObject毎にinstance⽣成
    objectタグで指定
     <object scope=“prototype” …
  singlet...
SpringActionscript

Getting Started
  Simple example



             Step2


Flex3勉強会第73回@北陸 2009‐07‐04
SpringActionscript
   load config and lookup dependency
private var _appContext:XMLApplicationContext;
private function on...
SpringActionscript
applicationContext.xml
  <object>
  <property>
  <ref>
  <constructor‐arg>
  <arg>
  <method‐invocation...
SpringActionscript
  Tips1
     applicationContext.xmlにBeanを定義しただ
     けではswfにclass情報は埋め込まれない為に,
     明⽰的にclassを宣⾔するか,cssに...
SpringActionscript
  Tips2
     明⽰的に宣⾔すると設定ファイルのみ書き換え
     て実装classの切り替えが出来ない><
       新しい実装クラスの度にコンパイル
     CSSを利⽤する
    ...
SpringActionscript
  Tips3
     同⼀idでBeanを登録した場合,後の登録が有効
        登録してもエラーにはならない

 applicationContext.xml
<object id="calc"...
SpringActionscript

            demo




    with remoteObject AMFsample
Flex3勉強会第73回@北陸 2009‐07‐04
SmartyPanth IOC



Flex3勉強会第73回@北陸 2009‐07‐04
SmartyPants IOC
SmartyPants IOC
  googleCodeで開発
    http://code.google.com/p/smartypants‐ioc/
  Guiceをinspire
  ⽇本語では
    ...
SmartyPants IOC
dependency
  依存ライブラリ無し
 library
 SmartyPantsIOC.swc   サイトからdownload

     使⽤したいprojectのライブラリに追加するだけ




Fl...
SmartyPants IOC



            build ok
           SmartyPants IOC




Flex3勉強会第73回@北陸 2009‐07‐04
SmartyPants IOC

Getting Started
  Simple example



             Step1


Flex3勉強会第73回@北陸 2009‐07‐04
SmartyPants IOC
   create Injector & lookup dependency
private var _injector:Injector;
private function onCreationComplete...
SmartyPants IOC

 inject
   [Inject]メタデータタグで指定
     Guiceの@Inject
   GuiceのModule=getInjectorに渡すinstace
[Inject]
public cl...
SmartyPants IOC

   Class Binding
     newRule().whenAskedFor
         useClass
         named(“xx”).useClass
         use...
SmartyPants IOC

   Class Binding Tips1
      namedでclass bindingしたinterfaceは, 
      getInstanceの際にbindしたnamed指定で取得
     ...
SmartyPants IOC

   Class Binding Tips2
     同⼀interfaceで複数実装classを登録した場合,
     後の登録が有効
        登録してもエラーにはならない
// 同⼀interf...
SmartyPants IOC

Provider Binding
 useProvider
Rule Binding
 useRuleFor(interface, “named”)
Live rules
 [Bindable]メタデータタグ
...
SmartyPants IOC

  scope
   prototype(default)
     getInstance毎にinstance⽣成
   singleton
     何度getInstanceしても同じinstance
 ...
SmartyPants IOC

Issue
  Constructor injectionは未実装


My Issue
  Provider
  Rule Binding




Flex3勉強会第73回@北陸 2009‐07‐04
SmartyPants IOC

            demo




    with remoteObject AMFsample
Flex3勉強会第73回@北陸 2009‐07‐04
swizframework



Flex3勉強会第73回@北陸 2009‐07‐04
swizframework
swizframework
  googleCodeで開発
    http://code.google.com/p/swizframework/
  Springをinspire(Autowire)
  Flex4...
swizframework
build
  trunk/branches 0.6.2
    Flex4が必須
  branches 0.6.1 co
    mvn install(maven2 installed)
    特に問題なくbu...
swizframework
dependency
  依存ライブラリ無し
  library
  swiz‐0.6.1.swc   mvn installで⽣成
  swiz‐0.6.2.swc   サイトからdownload

    使⽤し...
swizframework



            build ok
            swizframework




Flex3勉強会第73回@北陸 2009‐07‐04
swizframework

Getting Started
  Simple example



             Step1


Flex3勉強会第73回@北陸 2009‐07‐04
swizframework
  Beans.xml
    Regist component
<?xml version="1.0" encoding="utf‐8"?>
<BeanLoader xmlns:component="yone098...
swizframework

scope
  prototype
    getBean毎にinstance⽣成
    factory:Prototypeのsingleton属性で指定
     <factory:Prototype sing...
swizframework

Getting Started
  Simple example



             Step2


Flex3勉強会第73回@北陸 2009‐07‐04
swizframework
    load config and lookup dependency
private function sample():void
{
  // load config
  Swiz.loadBeans([Be...
swizframework

 inject
   [Autowire]メタデータタグで指定
     同⼀interfaceで複数登録時は,id指定
[Autowire]
public class InjectTest

[Autowire(...
swizframework
My Issue
  Swiz Controller
  Event Handling with CentralDispatcher
  DynamicMediators




Flex3勉強会第73回@北陸 20...
swizframework

            demo




    with remoteObject AMFsample
Flex3勉強会第73回@北陸 2009‐07‐04
Summary



Flex3勉強会第73回@北陸 2009‐07‐04
summary
get instance
DI Container         getInstance
SpringActionscript   getObject(cast無し)
SmartyPants IOC      getInsta...
summary
Default scope
DI Container         Default scope
SpringActionscript   singleton
SmartyPants IOC      prototype
swi...
Summary俳句



Flex3勉強会第73回@北陸 2009‐07‐04
⼀句


富⼭県
ホームな感じが
好きやちゃあ❤

Flex3勉強会第73回@北陸 2009‐07‐04
謝辞



                御清聴
               ありがとう
              ございました

Flex3勉強会第73回@北陸 2009‐07‐04
Upcoming SlideShare
Loading in …5
×

Flex's DI Container

2,746 views
2,636 views

Published on

FxUG@富山勉強会

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,746
On SlideShare
0
From Embeds
0
Number of Embeds
742
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Flex's DI Container

  1. 1. Flex’s DI Container 〜DI Container徹底⽐較〜 yone098 Flex3勉強会第73回@北陸 2009‐07‐04
  2. 2. ⾃⼰紹介 名前 ⽶林 正明(よねばやし まさあき) ID yone098 所属 T2 Project http://t2framework.org/ 株式会社Abby 代表取締役社⻑ http://www.abby.co.jp Flex3勉強会第73回@北陸 2009‐07‐04
  3. 3. ⾃⼰紹介 出⾝ 富⼭県富⼭市 宣伝 絶賛社員募集中(恵⽐寿勤務) 株式会社ヌーラボでも社員募集中 Flex3勉強会第73回@北陸 2009‐07‐04
  4. 4. ⾃⼰紹介 Flex歴 Secret OSS T2 Project(ver0.6 AMF) Seasar2, Teeda, S2JSF まとめ I ❤ Toyama Flex3勉強会第73回@北陸 2009‐07‐04
  5. 5. Agenda What is DI Container? Flex’s DI Container PranaFramework SpringActionScript SmartyPants IOC swizframework Summary Flex3勉強会第73回@北陸 2009‐07‐04
  6. 6. What is DI Container? Flex3勉強会第73回@北陸 2009‐07‐04
  7. 7. What’s DI Container? DI Container Dependency Injection 依存性の注⼊ Component管理 newしない ⼤きな連想配列 HashMapのお化けをイメージ Flex3勉強会第73回@北陸 2009‐07‐04
  8. 8. What’s DI Container? Java DI Container Seasar2 http://www.seasar.org/ Spring http://www.springsource.org/ Guice http://code.google.com/p/google‐guice/ Flex3勉強会第73回@北陸 2009‐07‐04
  9. 9. Flex’s DI Container Flex3勉強会第73回@北陸 2009‐07‐04
  10. 10. Flex’s DI Container Flex’s DI Container PranaFramework http://www.pranaframework.org/ SmartyPants IOC http://code.google.com/p/smartypants‐ioc/ swizframework http://code.google.com/p/swizframework/ Japanese container(coming soon) Flex3勉強会第73回@北陸 2009‐07‐04
  11. 11. Flex’s DI Container inspired Flex DI Container Java DI Container PranaFramework Spring SmartyPants IOC Guice swizframework Spring Flex3勉強会第73回@北陸 2009‐07‐04
  12. 12. Flex’s DI Container License Flex DI Container License PranaFramework ASL2.0 SmartyPants IOC New BSD License swizframework ASL2.0 Flex3勉強会第73回@北陸 2009‐07‐04
  13. 13. Prana Framework SpringActionscript Flex3勉強会第73回@北陸 2009‐07‐04
  14. 14. SpringActionscript Prana Framework 現在は,SpringExtensionsProject傘下 http://www.springsource.org/extensions/se‐springactionscript‐as Springをinspire Cairngorm, PureMVC拡張⽤のMVCS  architectureのUtility classを含む Model‐View‐Controller‐Service AOP Support(future) Flex3勉強会第73回@北陸 2009‐07‐04
  15. 15. break Cairngorm Flex3勉強会第73回@北陸 2009‐07‐04
  16. 16. Cairngorm Cairngorm(けあんごーむ) Flex⽤clientサイドフレームワーク http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm View (mxmlからイベンドドリブンでViewHelperメソッドをコール) ViewHelper (VOを作成し開発者が定義するイベントを発生させる) ValueObject (画面入力値保持オブジェクト) Controller (イベント処理の受け口) Command (execute/onResult/onFaultを実装) ModelLocator (画面表示用のモデルを保持) BusinessDelegate (RemoteObject/HTTPService/WebService) Services (サービスの一元管理) Flex3勉強会第73回@北陸 2009‐07‐04
  17. 17. break PureMVC Flex3勉強会第73回@北陸 2009‐07‐04
  18. 18. PureMVC PureMVC Flex⽤clientサイドフレームワーク http://puremvc.org Cairngormの⽋点を⾒直して作られたMVCモデル Model Proxyクラス/ValueObjectクラス View MXML/Mediatorクラス Controller Façadeクラス/Commandクラス Flex3勉強会第73回@北陸 2009‐07‐04
  19. 19. back SpringActionscript Flex3勉強会第73回@北陸 2009‐07‐04
  20. 20. SpringActionscript build trunk co https://src.springframework.org/svn/se‐springactionscript‐as/spring‐actionscript/trunk mvn install(maven2 installed) MAVEN_OPTS=‐Xmx1024m pom.xmlの修正 <dependency> <groupId>com.adobe.flexunit</groupId> <artifactId>flexunit</artifactId> <version>0.90</version><!‐‐0.9はリポジトリには存在しない‐‐> <type>swc</type> </dependency> Flex3勉強会第73回@北陸 2009‐07‐04
  21. 21. SpringActionscript dependency 依存ライブラリを追加 Dependency library as3commons‐lang.swc download as3commons‐logging.swc download as3commons‐reflect.swc download flexunit.swc download Spring‐actionscript.swc mvn installで生成 Flex3勉強会第73回@北陸 2009‐07‐04
  22. 22. build ok SpringActionscript Flex3勉強会第73回@北陸 2009‐07‐04
  23. 23. break Flex with maven2 Flex3勉強会第73回@北陸 2009‐07‐04
  24. 24. flex with maven2 flexmojos Flex maven2 project http://blog.flex‐mojos.info/ <repository> <id>flex‐mojos‐repository</id> <url>http://repository.sonatype.org/content/groups/flexgroup</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> Flex3勉強会第73回@北陸 2009‐07‐04
  25. 25. flex with maven2 AS3Commons Project http://www.as3commons.org/ AS3Commons Reflect reflection API for ActionScript3.0 Flash/Flex/AIR http://www.as3commons.org/as3‐commons‐logging/ AS3Commons Logging reflection API for ActionScript3.0 http://www.as3commons.org/as3‐commons‐reflect/ Flex3勉強会第73回@北陸 2009‐07‐04
  26. 26. flex with maven2 AS3Commons Reflect Dependencies GroupId ArtifactId type com.adobe.flex.framework Flex‐framework pom com.adobe.flex.unit flexunit swc org.as3commons as3commons‐logging swc org.sonatype.flexmojos Flexmojos‐unittest‐support swc Flex3勉強会第73回@北陸 2009‐07‐04
  27. 27. back SpringActionscript Flex3勉強会第73回@北陸 2009‐07‐04
  28. 28. SpringActionscript Getting Started Simple example Step1 Flex3勉強会第73回@北陸 2009‐07‐04
  29. 29. SpringActionscript applicationContext.xml Regist component <?xml version="1.0"?> <objects xmlns="http://www.pranaframework.org/objects" xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance" xsi:schemaLocation="http://www.pranaframework.org/objects http://www.pranaframework.org/schema/objects/prana‐objects‐0.6.xsd"> <object id="singletonBean" class="yone098.samples.SingletonClass" scope="singleton" /> <object id="prototypeBean“ class="yone098.samples.PrototypeClass" scope="prototype" /> <object id="calc" class="yone098.samples.CalcAdd" /> </objects> Flex3勉強会第73回@北陸 2009‐07‐04
  30. 30. SpringActionscript scope prototype getObject毎にinstance⽣成 objectタグで指定 <object scope=“prototype” … singleton(default) 何度getObjectしても同じinstance objectタグで指定 <object scope=“singleton” … Flex3勉強会第73回@北陸 2009‐07‐04
  31. 31. SpringActionscript Getting Started Simple example Step2 Flex3勉強会第73回@北陸 2009‐07‐04
  32. 32. SpringActionscript load config and lookup dependency private var _appContext:XMLApplicationContext; private function onCreationComplete():void { _appContext= new XMLApplicationContext("applicationContext.xml"); _appContext.addEventListener(Event.COMPLETE,  onApplicationContextComplete); // listen complete _appContext.load(); // load } private function onApplicationContextComplete(event:Event):void { var bean1:SingletonClass = _appContext.getObject("singletonBean"); var bean2:SingletonClass = _appContext.getObject("singletonBean"); } Flex3勉強会第73回@北陸 2009‐07‐04
  33. 33. SpringActionscript applicationContext.xml <object> <property> <ref> <constructor‐arg> <arg> <method‐invocation> <param> Flex3勉強会第73回@北陸 2009‐07‐04
  34. 34. SpringActionscript Tips1 applicationContext.xmlにBeanを定義しただ けではswfにclass情報は埋め込まれない為に, 明⽰的にclassを宣⾔するか,cssにclass情報を 設定しないと実⾏時にエラー。 特にinterfaceでgetObjectする際は注意 // 明⽰的に実装クラスを宣⾔しておく private var _includeClasses:Array = [CalcAdd, CalcMinus]; Flex3勉強会第73回@北陸 2009‐07‐04
  35. 35. SpringActionscript Tips2 明⽰的に宣⾔すると設定ファイルのみ書き換え て実装classの切り替えが出来ない>< 新しい実装クラスの度にコンパイル CSSを利⽤する ClassReference /** bean情報をcssに */ .prana { bean1:ClassReference("yone098.samples.CalcAdd"); bean2:ClassReference("yone098.samples.CalcMinus"); } Flex3勉強会第73回@北陸 2009‐07‐04
  36. 36. SpringActionscript Tips3 同⼀idでBeanを登録した場合,後の登録が有効 登録してもエラーにはならない applicationContext.xml <object id="calc" class="yone098.samples.CalcMinus" /> <object id="calc" class="yone098.samples.CalcAdd" /> main.mxml // id=calcをgetObjectするとCalcAdd var calc:ICalc = _appContext.getObject("calc"); Flex3勉強会第73回@北陸 2009‐07‐04
  37. 37. SpringActionscript demo with remoteObject AMFsample Flex3勉強会第73回@北陸 2009‐07‐04
  38. 38. SmartyPanth IOC Flex3勉強会第73回@北陸 2009‐07‐04
  39. 39. SmartyPants IOC SmartyPants IOC googleCodeで開発 http://code.google.com/p/smartypants‐ioc/ Guiceをinspire ⽇本語では 嫌味なやーつ 依存ライブラリ無し 設定ファイル無し AOP Support無し Flex3勉強会第73回@北陸 2009‐07‐04
  40. 40. SmartyPants IOC dependency 依存ライブラリ無し library SmartyPantsIOC.swc サイトからdownload 使⽤したいprojectのライブラリに追加するだけ Flex3勉強会第73回@北陸 2009‐07‐04
  41. 41. SmartyPants IOC build ok SmartyPants IOC Flex3勉強会第73回@北陸 2009‐07‐04
  42. 42. SmartyPants IOC Getting Started Simple example Step1 Flex3勉強会第73回@北陸 2009‐07‐04
  43. 43. SmartyPants IOC create Injector & lookup dependency private var _injector:Injector; private function onCreationComplete():void { // setup injector _injector = SmartyPants.getOrCreateInjectorFor(this); } private function sample():void { var bean1:SingletonClass = _injector.newRequest(this) .forClass(SingletonClass).getInstance(); var bean2:SingletonClass = _injector.newRequest(this) .forClass(SingletonClass).getInstance(); } Flex3勉強会第73回@北陸 2009‐07‐04
  44. 44. SmartyPants IOC inject [Inject]メタデータタグで指定 Guiceの@Inject GuiceのModule=getInjectorに渡すinstace [Inject] public class InjectTest Flex3勉強会第73回@北陸 2009‐07‐04
  45. 45. SmartyPants IOC Class Binding newRule().whenAskedFor useClass named(“xx”).useClass useSingletonOf // interfaceの実装をCalcAddに _injector.newRule().whenAskedFor(ICalc).useClass(CalcAdd); // “calc”という名前でBinding _injector.newRule().whenAskedFor(ICalc).named("calc").useClass(CalcAdd); // singleton _injector.newRule().whenAskedFor(ICalc).useSingletonOf(CalcAdd); Flex3勉強会第73回@北陸 2009‐07‐04
  46. 46. SmartyPants IOC Class Binding Tips1 namedでclass bindingしたinterfaceは,  getInstanceの際にbindしたnamed指定で取得 しないとエラー。 // namedで”foo”指定でbind _injector.newRule().whenAskedFor(ICalc).named("foo").useClass(CalcAdd); // bindした名前と異なるのでエラー var calc:ICalc =  _injector.newRequest(this).forClass(ICalc).named(“abc").getInstance(); // 名前を指定しないとエラー var calc:ICalc =  _injector.newRequest(this).forClass(ICalc).getInstance(); // 正しくgetInstance可能 _injector.newRequest(this).forClass(ICalc).named("foo").getInstance(); Flex3勉強会第73回@北陸 2009‐07‐04
  47. 47. SmartyPants IOC Class Binding Tips2 同⼀interfaceで複数実装classを登録した場合, 後の登録が有効 登録してもエラーにはならない // 同⼀interfaceでnamed指定無しで複数登録 _injector.newRule().whenAskedFor(ICalc).useClass(CalcAdd); _injector.newRule().whenAskedFor(ICalc).useClass(CalcMinus); // getInstance => CalcMinus var calc:ICalc = _injector.newRequest(this).forClass(ICalc).getInstance(); Flex3勉強会第73回@北陸 2009‐07‐04
  48. 48. SmartyPants IOC Provider Binding useProvider Rule Binding useRuleFor(interface, “named”) Live rules [Bindable]メタデータタグ useBindableProperty(obj,“propertyName”) Flex3勉強会第73回@北陸 2009‐07‐04
  49. 49. SmartyPants IOC scope prototype(default) getInstance毎にinstance⽣成 singleton 何度getInstanceしても同じinstance [Singleton]メタデータタグで指定 [Singleton] public class SingletonClass Flex3勉強会第73回@北陸 2009‐07‐04
  50. 50. SmartyPants IOC Issue Constructor injectionは未実装 My Issue Provider Rule Binding Flex3勉強会第73回@北陸 2009‐07‐04
  51. 51. SmartyPants IOC demo with remoteObject AMFsample Flex3勉強会第73回@北陸 2009‐07‐04
  52. 52. swizframework Flex3勉強会第73回@北陸 2009‐07‐04
  53. 53. swizframework swizframework googleCodeで開発 http://code.google.com/p/swizframework/ Springをinspire(Autowire) Flex4対応 依存ライブラリ無し 設定ファイルはmxml AOP Support無し Flex3勉強会第73回@北陸 2009‐07‐04
  54. 54. swizframework build trunk/branches 0.6.2 Flex4が必須 branches 0.6.1 co mvn install(maven2 installed) 特に問題なくbuild可能 Flex3勉強会第73回@北陸 2009‐07‐04
  55. 55. swizframework dependency 依存ライブラリ無し library swiz‐0.6.1.swc mvn installで⽣成 swiz‐0.6.2.swc サイトからdownload 使⽤したいprojectのライブラリに追加するだけ ソースを修正したい場合は、mvnで構築しても良い Flex3勉強会第73回@北陸 2009‐07‐04
  56. 56. swizframework build ok swizframework Flex3勉強会第73回@北陸 2009‐07‐04
  57. 57. swizframework Getting Started Simple example Step1 Flex3勉強会第73回@北陸 2009‐07‐04
  58. 58. swizframework Beans.xml Regist component <?xml version="1.0" encoding="utf‐8"?> <BeanLoader xmlns:component="yone098.samples.*" xmlns:mx="http://www.adobe.com/2006/mxml"> <component:Sample1 id="sample1"/> <component:Sample2 id="sample2"/> </BeanLoader> Flex3勉強会第73回@北陸 2009‐07‐04
  59. 59. swizframework scope prototype getBean毎にinstance⽣成 factory:Prototypeのsingleton属性で指定 <factory:Prototype singleton=“false” class=“… singleton(default) 何度getBeanしても同じinstance 何も指定しない(default) factory:Prototypeのsingleton属性で指定 <factory:Prototype singleton=“true” class=“… Flex3勉強会第73回@北陸 2009‐07‐04
  60. 60. swizframework Getting Started Simple example Step2 Flex3勉強会第73回@北陸 2009‐07‐04
  61. 61. swizframework load config and lookup dependency private function sample():void { // load config Swiz.loadBeans([Beans]); // getBean var bean1:Sample1 =  Swiz.getBean("sample1") as Sample1; } Flex3勉強会第73回@北陸 2009‐07‐04
  62. 62. swizframework inject [Autowire]メタデータタグで指定 同⼀interfaceで複数登録時は,id指定 [Autowire] public class InjectTest [Autowire(bean=“calcAdd”)] public var _calc:ICalc; Flex3勉強会第73回@北陸 2009‐07‐04
  63. 63. swizframework My Issue Swiz Controller Event Handling with CentralDispatcher DynamicMediators Flex3勉強会第73回@北陸 2009‐07‐04
  64. 64. swizframework demo with remoteObject AMFsample Flex3勉強会第73回@北陸 2009‐07‐04
  65. 65. Summary Flex3勉強会第73回@北陸 2009‐07‐04
  66. 66. summary get instance DI Container getInstance SpringActionscript getObject(cast無し) SmartyPants IOC getInstance(cast無し) swizframework getBean(cast必要) configration DI Container configration SpringActionscript applicationContext.xml(任意) SmartyPants IOC 無し swizframework mxml Flex3勉強会第73回@北陸 2009‐07‐04
  67. 67. summary Default scope DI Container Default scope SpringActionscript singleton SmartyPants IOC prototype swizframework singleton Constructor injection DI Container Constructor injection SpringActionscript constructor‐arg SmartyPants IOC future swizframework 無し Flex3勉強会第73回@北陸 2009‐07‐04
  68. 68. Summary俳句 Flex3勉強会第73回@北陸 2009‐07‐04
  69. 69. ⼀句 富⼭県 ホームな感じが 好きやちゃあ❤ Flex3勉強会第73回@北陸 2009‐07‐04
  70. 70. 謝辞 御清聴 ありがとう ございました Flex3勉強会第73回@北陸 2009‐07‐04

×