Spring : DI


DIとは何ですか.
依存注入の略です.
DIはオブジェクト向けの技術である.
外部から客体間の依存性を注入する概念である.
newから直接オブジェクトを作成するのではなく、Springによって管理されます.
DIを使用すると、オブジェクト間の結合度が低下し、柔軟性が向上します.
DIのタイプ

  • Setter Injection(注入Setter)
    Setter Injection
    B b = new B();
    A a = new A();
    a.setB(b);

  • こうぞうちゅうにゅう
    Construction Injection
    B b = new B();
    A a = new A(b);
    上のコードはJAVA開発者がよく知っている概念で、DIはJAVAでもよく使われています.
    ただし、スプリングはこの一連のプロセスを(動的に)自動化します.
  • スプリング上のDI
  • 明細書に従って部品組立品=>スプリング
  • を自動的に使用する.
  • オールインワンプログラムとは逆に、製品を生成します.
  • 、すなわち小部品から始まり、その後大部品に移動し、組立=>内部統制(IOC)
  • .
    基本的な完成品の順序とは異なり、小さな部品から大きな部品まで、製品の作成順序は逆順序です.
    従って、IoCと名付けられ、スプリングは一連の操作を容器に入れて処理し、スプリングをIoC容器と呼ぶ.
    スプリングは、完成品ではなく部品を組み立てるのに役立ちます.つまりSpringは,開発者がこれらのDI構造をより容易に利用できるよう支援するフレームワークの一つである.
    DIスプリングにおける意味
  • 部品を作成し、製品をアセンブリするプロセスの代わりにライブラリ(ロール)を作成します.
    開発キーハンドラを変更することなく、製品(オブジェクト)を他の製品(オブジェクト)に簡単に置き換えることができます.
  • リストに従って、部品アセンブリ製品を自動的に使用します.
  • 作成するオブジェクトをインベントリ(XML)に記述し、これらのオブジェクトのコンポーネントと依存性を処理します.これらのデータを格納する空間をコンテナと呼ぶ.(IoC容器)DI実施
  • XML(Spring DI)を使用する場合、VIEWのオブジェクトのみが要求されますが、実際には内部事項はJAVAコードにありません.
  • 新しいクラスのbeanオブジェクトを作成し、XMLに注入するだけで、既存のソースを変更せずに新しいタイプのオブジェクトを適用できます.
  • 1.XML(スプリングDI)config.xml
  • XML(スプリングDI):オブジェクトの作成時に、パッケージ名を含むプールクラス名を作成します.
  • XMLで作成されたリストを表示し、IoCコンテナは各オブジェクトを作成し、値を入力します.
  • では、ApplicationContextがIoCコンテナとして機能する.
  • <bean id=“record” class=“di.SprRecord></bean> // 빈 객체 생성
    <bean id=“view” class=“di.SprRecordView> // 빈 객체 생성
      <property name=“record” ref=“record”></property> // setRecord() 호출 
    </bean>
    
    //id : 빈 객체 고유 이름 (접근 가능자)
    //name : 객체의 이름(별칭)
    //class : 생성할 클래스
    //constructor-arg : 초기값 설정 (생성자 함수 사용)
    //property : 초기값 설정 (Setter함수 사용)
    
    
    
    출처: https://ooz.co.kr/175 [이러쿵저러쿵]
    2. JAVA mainClass.java
  • XMLをコンテナにグループ化するタスク
  • ApplicationContext ctx = new ClassPathXmlApplicationContext(“config.xml”);
    RecordView = (RecordView) ctx.getBean(“view”);
    Annotationの使用
    Annotationを使用すると、
  • XMLファイルへの依存度が減少し、より使いやすくなります.
  • @Autowired:beanを自動的に挿入する構文.(typeにマッピング)
    @Qualifier("id"):インタフェースを使用して多形性を生成する場合、どのメソッドを挿入するかを決定できます.
    @Resource:beanを自動的に挿入するための構文.(nameにマッピング)
    @コンポーネント:beanの作成
    @Service:クラスがService Beanであることを指定します.
    @Repository:クラスをRepository beanとして指定します.
    既定では、クラス宣言の上に@コンポーネント宣言を付けると、スプリングはスプリング空席として作成されます.ただし、一般的なビジネスの場合は、次の操作を行います.
    コントローラクラスに@Controllerが含まれています
    サービスクラスに@Serviceが含まれています
    DAOクラスは@Repositoryを含む
    上記の操作では、スプリングメタファイル(xml)ファイルで

    これにより、空が自動的に生成されます.
    出典:https://ooz.co.kr/175[言ってみれば]