본문 바로가기
Programming/SpringFramework

[Spring] IoC 컨테이너 - Inversion of Control(7강)

by prinha 2020. 8. 4.
반응형

 

 

Ioc(Inversion of Control) : 제어 역전

- 일반적으로 프로그래밍을 작성할 때 프로그램이 흘러가는 흐름이나 생성되는 객체에 대한 제어권을 

개발자가 가지는 것과 달리 프레임워크가 가지는 것을 의미한다.

- 개발자가 코드의 흐름이나 객체 생성에 관련된 코드를 프로그래밍 코드에 직접 작성하는 것이 아닌

프레임워크가 사용하는 파일에 작성하면 이를 토대로 프레임워크가 객체를 생성하여 반환하고

코드가 동작하는 순서를 결정하게 된다는 의미이다.

 

 

POJO Class == 간단하게 자바에서는 java bean , vo, dao 라고 부른다

- POJO(Plain Old Java Object) : 자바 모델이나, 기능, 프레임워크 등에 따르지않고

홀로 독립적이며 단순한 기능만을 가진 객체들을 의미한다.

- POPO(PHP), POCO(닷넷 프레임워크), PODS(C++), POD(Perl) 등

- xml로 metadata만드는 방식 먼저 -> 다음 java 코드

 

 

IoC 컨테이너의 종류

1) BeanFactory (예전) -> 클래스의 주소값 전달 하는 기능 끝

클래스를 통해 객체를 생성하고 이를 전달한다.

상속 등 객체 간의 관계를 형성하고 관리한다.

Bean에 관련된 설정을 위한 xml파일은 즉시 로딩하지만 객체는 개발자가 요구할 때 생성한다.

XmlBeanFactory

 

2) ApplicationContext (최신)

클래스를 통해 객체를 생성하고 이를 전달한다.

상속 등 객체 간의 관계를 형성하고 관리한다.

국제화 지원 등 문자열에 관련된 다양한 기능 제공

리스너로 등록되어있는 Bean에 이벤트 발생

Bean에 관련된 설정을 위한 xml 파일은 즉시 로딩하면서 객체를 미리 생성해서 가지고있다.

ClassPathXmlApplicationContext

FileSystemXmlApplicationContext

XmlWebApplicationContext

 

 

 

반응형