[Spring] IoC/DI


IoC - Inversion of Controller


コントロールの逆転
オブジェクトのコントロールがコンテナに逆転
開発者が変更するコンテナではなくドライバが直接管理する、プログラムを実行するために必要なオブジェクトに段落を作成します.
Springはオブジェクトを直接管理し、必要なオブジェクトの作成からライフサイクルまでdocumで行います.

長所

  • 開発者は、管理対象ではなく他の面に集中できます.
  • オブジェクト間の結合を削減することで、コードの柔軟な記述が可能になり、可読性、コードの成長、メンテナンスが簡素化されます.

    Spring IoC Container


    Springが管理するオブジェクトをBean(空)、コンテナをBean Factory、管理Bean(空)と呼びます.
  • ロール#ロール#


    管理対象のライフサイクルと依存性
  • DTO/POJOオブジェクトの作成、初期化、破棄を担当する
  • .
  • 開発者はオブジェクトを直接作成することができるが、コンテナに権限を付与ことで、ソースコードの実装時間
  • を短縮することができる.

    DI - Dependency Injection


    依存性注入
    スプリングコンテナのオブジェクトへの依存性.
    IoCはIoCの重要な技術であり、使用するオブジェクトを直接作成して作成するのではなく、コンテナから空の設定情報を読み取り、自動的にオブジェクトに接続します.
    依存性が得られると、オブジェクトを変更するときにソースコードの変更を最小限に抑えることができます.

    長所

  • 開発者が作成したコード
  • を簡略化
  • オブジェクト間の依存関係を解消する
  • .

    Spring DIタイプ


    1.constructor Injection(注入作成者)

  • ジェネレータにより依存関係
  • が接続する.
  • XML設定ファイルでは、パラメータの数と同じ数の<constructor-arg>をbeanサブ要素に追加する必要があります.
  • <bean id = "불러올 객체 이름" class = "클래스 풀 네임">
    	<constructor-arg index = "0" value = "OOO"/>
        <constructor-arg index = "OOO" ref = "OOO"/>
    </bean>
    <bean id = "student" class = "com.kh.spring.person.model.vo.student">
    	<constructor-arg index = "0" value = "홍길동"/>
        <constructor-arg index = "0" ref = "money"/>
    </bean>
    <bean id = "money" class = "com.kh.spring.wallet.model.vo.Wallet"/>

    2.Setter Injection(setterメソッド注入)

  • Setterメソッド接続依存
  • 依存関係を
  • 2<property>タグに入力するフィールド値をnameプロパティに指定する必要があります.
  • <bean id = "객체 이름" class = "클래스 풀 네일">
    	<property name = "name" value = "OOO"/>
        <property name = "name" ref = "OOO"/>
    </bean>
    <bean id = "student" class = "com.kh.spring.person.model.vo.student">
    	<property name = "name" value = "홍길동"/>
        <property name = "wallet" ref = "money"/>
    </bean>
    <bean id = "money" class = "com.kh.spring.wallet.model.vo.Wallet"/>
    **修正すべき点があればコメントで教えてください**
    ref :
  • https://velog.io/@damiano1027/Spring-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-%EC%A0%9C%EC%96%B4%EC%9D%98-%EC%97%AD%EC%A0%84
  • https://moonong.tistory.com/29