IoC (Inversion of Control)
- 제어의 역전
- 객체가 자신이 사용할 객체를 스스로 선택하지 않고 스스로 생성도 하지 않는다.
- 프레임워크가 흐름을 주도한다.
- 애플리케이션 코드가 프레임워크가 짜놓은 틀에서 수동적으로 동작된다.
IoC 컨테이너(ApplicationContext)
- IoC가 일어나는 공간
- 객체의 의존 관계를 설정
- 객체들에 대한 생성과 파괴를 관장
- 런타임 의존성
참고) DDD 관련
service
- 상태가 없다.
- 비즈니스 룰을 갖고 있는 특정한 행위(메서드)를 갖고 있다.
- Domain Model Layer에 속한다.
Aggregate
- Entity들의 집합
- 내부에서 transaction이 보장되어야 한다.
- Domain Model Layer에 속한다.
Repository
- 상태를 조회하고, 저장한다.
- Entity의 저장소
Bean
- IoC 컨테이너에서 관리되는 객체
@Bean
- ApplicationContext(IoC 컨테이너)는 만들어야할 빈 정보를 Configuration Metadata(설정 메타데이터)로 부터 받아온다.
DI(Dependency Injection)
- IoC를 만드는 방법 중 하나
- 의존 관계 주입