정리하고기록하자

Spring - IoC 본문

개발 상식

Spring - IoC

정리하고기록하자 2022. 4. 22. 23:45
반응형

IoC란

IoC( 제어 반전 ) 이란 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미한다.

( 직접 의존성은 생성하지 않고 누군가에 의해 주입받는다. 의존성 주입!)

이것이 '제어의 역전' 이라고 부른다.


IoC 컨테이너

스프링 프레임워크도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 있는데, 그것이 바로 IoC 컨테이너 이다.


public interface CarInterface {
	
	public void makeCar();
}

public class Center {
	
	public Center() {
		System.out.println("--------영업시작합니다--------");
		System.out.println("--------------------------");
	}
	
	public void makeCar(CarInterface car) {
		System.out.println("--------자동차 수리 해요--------");
		car.makeCar();
	}
}

센터 생성자 생성 , makeCar 메서드 생성


 

public class Car implements CarInterface{

	@Override
	public void makeCar() {
		// TODO Auto-generated method stub
		System.out.println("--------첫번째 자동차 수리했어요 --------");
		System.out.println("--------바퀴도 달아줬어요--------");
	}

}

Car Class 에 CarInterface 를 implements 하고 makeCar 메서드를 소스를 작성한다.


public class Wheel implements CarInterface{

	@Override
	public void makeCar() {
		// TODO Auto-generated method stub
		System.out.println("--------두번째 자동차 수리했어요 --------");
		System.out.println("--------여기도 바퀴 달아줬어요 --------");
	}
	
}

Wheel Class 에 CarInterface 를 implements 하고 makeCar 메서드를 소스를 작성한다.


public class main {

	public static void main(String[] args) {
		// 메인 클래스는  
		// 카센터 라는 객체를 만들었다
		Center center = new Center();
		
		
		Car car = new Car();
		Wheel wheel = new Wheel(); 
		
		
		center.makeCar(car);
		System.out.println("---한개 끝났구요");
		center.makeCar(wheel);
		System.out.println("---두개 끝났구요");
		
	}

}

메인에서는 Center 클래스에 center 객체를 먼저 생성하고 
CarClass, WhellClass에 각각의 객체를 가져와서 ( 외부에서 ) 이용을한다.
Center 클래스는 CarClass, WhellClass 클래스를 의존 하고있다.
이것이 의존 객체 이다.

생성자의 객체는 스프링에서는 빈 (Bean) 이라고 부른다.




 

반응형

'개발 상식' 카테고리의 다른 글

Spring - PSA  (0) 2022.05.02
Spring - DI  (0) 2022.05.02
Spring - AOP  (0) 2022.04.30
JDK 1.7 -> 1.8  (0) 2022.04.28
RESTful API  (0) 2022.03.14