..
제어 (IOC)의 'S 역전은 프레임 워크 자체 응용 프로그램에 의해 흐름 제어를 이동 프레임 워크의 일반적인 기능입니다.
의이 개념을 명확히하기 위해 예제를 봅시다 : 당신이 작성하는 경우 GUI를 통해 API를 스윙 , 프로그래머는 이러한 버튼을 눌러 또는 텍스트를 입력으로 사용자가 트리거 이벤트의 처리기를 구현해야합니다. 프레임 워크는 이러한 폐쇄하고 개방 창으로 응용 프로그램 흐름을 제어하기 위해 남아 있습니다.
컨트롤이 프레임 워크의 개발자에 의해 이동되기 때문에 문제가 이러한 유형의 IOC라고합니다.
일단 그것이 스프링에 사용되는 방법 IOC, 우리가 보는 분명하다.
모든 응용 프로그램은 미리 정해진 목표가 서로 협력해야하며, 불가피하게 의존성을 형성 도달 개체로 이루어져 있습니다.
일반적으로 이러한 의존성은 설정 (일반적으로 제조 업체)에 적합한 코드로 해결됩니다.
우리가 비디오 가게를 관리하기위한 클래스를 구현해야 가정해 :
it.mrwebmaster 패키지;
수입 java.util.ArrayList;
수입 java.util.List;
{공용 클래스 VideoManager
개인 DvdService의 dvdService;
공개 VideoManager () {
슈퍼 ();
/ **
* 구성 및 종속성 해상도
* /
this.dvdService DvdServiceImpl = 새 ();
}
<Dvd>의 getAvalaibleDvdList 공개 목록 () {
/ **
* DVD의 목록을 검색
* /
목록 <Dvd> dvdList dvdService.getDvdList = ();
/ **
찾아 DVD의 목록을 * 루프
* 사용 가능한 그
* /
목록 = 새로운 ArrayList를 <Dvd> availabeDvdList의 <Dvd> ();
{: (dvdList DVD DVD)에 대한
{(dvd.isDisponibile ())하는 경우
availabeDvdList.add (DVD);
}
}
availabeDvdList 반환;
}
}
이 예제에서는 클래스 VideoManager이 아닌 임대 DVD의 목록을 복구하는 작업을하고 있습니다. 목록은 사용할 수있는 DVD를하는 모든 DVD의 목록을 검색 서비스 (DvdService), 그리고 목록에 자전거를 사용하여 검색됩니다. 클래스 VideoManager 따라서, 생성자에서 해결되었습니다 개체 DvdService에 의존 있습니다.

우리가 봄 사용하지 않았다면 우리는 의존성이 스프링에 의해 해결될 것입니다 때문에, 클래스 생성자에서 dipendeza의 VideoManager 해결에 대해 걱정할 필요합니다.
봄에 다음, IOC는 구성 의존성을 통해 컨트롤을 반전하는 데 사용됩니다.
이런 이유로 그것은 그의 유명한, 마틴 파울러에 의해 주장 기사 , 때로는 동의어 IOC ID로 잘못 사용되는 용어 Dependecy 주입 (DI).
DI의 기본 개념은 종속성 해상도와 초기화를 할 별도의 객체를하는 것입니다.
다음과 같은 어셈블러 클래스, 클래스 DvdService를 초기화하는 작업을 있습니다 :

Dependecy 분사의 세 가지 유형이 있습니다 :
| |
리눅스 (코스)
오픈 소스 시스템에 완료 안내. 49 €에서. |
| |
PHP (코스)
동적 웹 사이트를 만드는 전체 과정. 49 €에서. |
| |
레일에 루비와 루비 (코스)
루비와 RoR과 함께 소프트웨어와 웹 응용 프로그램을 만듭니다. 39 €에서. |