PicoからSpringへ
PicoContainerで書いたアプリをSpringに移植してみました。
そのときの修正のメモを載せています。
SpringとPicoContainerの違いがよく分かるのではないでしょうか?
・コンテナで管理するクラスにデフォルトコンストラクタを追加 他のコンポーネントを渡すためのコンストラクタを、セッターメソッドに変更 [pico] (コンストラクタで他のコンポーネントを渡す) class UserManager.. UserManager(UserDao userDao) { this.userDao = userDao; } [Spring](セッターで他のコンポーネントを渡す) class UserManager.. public void setUserDao(UserDao userDao) { this.userDao = userDao; } ・コンポーネントの登録部分を変更 [pico](オブジェクトに直接登録。NanoContainerを使えばXMLファイルを使う方法も) DefaultPicoContainer#registerComponentImplementation UserDao.class,JdbcUserDao.class); DefaultPicoContainer#registerComponentImplementation( UserManager.class, DefaultUserManager.class); [Spring](XMLファイルで定義)・コンポーネントの取得部分を変更 [pico](クラスをキーとして取得) DefaultPicoContainer#getComponentInstance(UserManager.class) [Spring](文字列をキーとして取得) FileSystemXmlApplicationContext#getBean("userManager")