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コンテナとして機能する. XMLをコンテナにグループ化するタスク
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[言ってみれば]
依存注入の略です.
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でもよく使われています.
ただし、スプリングはこの一連のプロセスを(動的に)自動化します.
基本的な完成品の順序とは異なり、小さな部品から大きな部品まで、製品の作成順序は逆順序です.
従って、IoCと名付けられ、スプリングは一連の操作を容器に入れて処理し、スプリングをIoC容器と呼ぶ.
スプリングは、完成品ではなく部品を組み立てるのに役立ちます.つまりSpringは,開発者がこれらのDI構造をより容易に利用できるよう支援するフレームワークの一つである.
DIスプリングにおける意味
開発キーハンドラを変更することなく、製品(オブジェクト)を他の製品(オブジェクト)に簡単に置き換えることができます.
<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.javaApplicationContext ctx = new ClassPathXmlApplicationContext(“config.xml”);
RecordView = (RecordView) ctx.getBean(“view”);
Annotationの使用Annotationを使用すると、
@Qualifier("id"):インタフェースを使用して多形性を生成する場合、どのメソッドを挿入するかを決定できます.
@Resource:beanを自動的に挿入するための構文.(nameにマッピング)
@コンポーネント:beanの作成
@Service:クラスがService Beanであることを指定します.
@Repository:クラスをRepository beanとして指定します.
既定では、クラス宣言の上に@コンポーネント宣言を付けると、スプリングはスプリング空席として作成されます.ただし、一般的なビジネスの場合は、次の操作を行います.
コントローラクラスに@Controllerが含まれています
サービスクラスに@Serviceが含まれています
DAOクラスは@Repositoryを含む
上記の操作では、スプリングメタファイル(xml)ファイルで
これにより、空が自動的に生成されます.
出典:https://ooz.co.kr/175[言ってみれば]
Reference
この問題について(Spring : DI), 我々は、より多くの情報をここで見つけました https://velog.io/@eesiwoo/Spring-DI-whkhpewtテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol