seasar2의 학습2(Seasar2는 2.7개 구성 요소의 자동 등록을 철저히 입문)

2019 단어 Seasar2
이렇게 설정 파일을 쓰면 돼요.
  <!-- コンポーネントの自動登録 -->
  <component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
      <!-- instanceDefは省略するとsingleton -->
      <!-- autoBindingは省略するとauto -->
      <!-- DefaultAutoNaming機構を使うとクラスの完全修飾名からパッケージ部分を除き、
      最後がImplまたはBeanで終わっていたら削除し、 先頭を小文字にした名前をコンポーネントの名前に設定します。
      例えば、aaa.HogeImplクラスの場合、コンポーネント名は、hogeになります。は省略するとsingleton -->

      <!--  検索の起点となるクラスを指定する。これ指定しないと何も見つからない -->
      <initMethod name="addReferenceClass">
          <arg>@hello.componentautoregister.MainCaller@class</arg>
      </initMethod>

      <!--  検索パターンをしていhelloパッケージ配下(サブ含む)のImplメソッドが対象になる -->
      <initMethod name="addClassPattern">
          <arg>"hello"</arg>
          <arg>".*Impl"</arg>
      </initMethod>
  </component>
실제 사용의 예.
package hello.componentautoregister;

import org.seasar.framework.container.SingletonS2Container;
import org.seasar.framework.container.factory.SingletonS2ContainerFactory;;

public class MainCaller {

    public static void main(String[] args) {

        // S2コンテナの初期化
        SingletonS2ContainerFactory.setConfigPath("app2.dicon");
        SingletonS2ContainerFactory.init();

        // IMessageProviderIFを実装したコンポーネントを取得(コメントアウトしてるクラス指定でもいけます)
        //MessageProvider messageProvider = SingletonS2Container.getComponent(MessageProvider.class);
        MessageProvider messageProvider = SingletonS2Container.getComponent("messageProvider");
        // メッセージを出力
        System.out.println(messageProvider.getMessage());

        // S2コンテナの破棄
        SingletonS2ContainerFactory.destroy();

    }

}

메시 프로바이더 등과 지난번부터 미묘하게 이름을 바꿔 다음과 같은 모습으로 변신했다.

좋은 웹페이지 즐겨찾기