토비의 스프링 [1.4장 - 1.5장] 발표 스터디 자료
1.4. 제어의 역전(IoC, Inversion of Control)
Object Factory
- 기존에 있던 Dao를 한데 모아 한꺼번에 관리하는 전략, 코드 중복의 최소화
Factory
- 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려주는 것
import me.devsign.toby.connection.ConnectionMaker;
public class DaoFactory {
private ConnectionMaker connectionMaker;
public DaoFactory(ConnectionMaker connectionMaker) {
this.connectionMaker = connectionMaker;
}
public UserDao userDao() {
return new UserDao(connectionMaker);
}
public AccountDao accountDao() {
return new AccountDao(connectionMaker);
}
public MessageDao messageDao() {
return new MessageDao(connectionMaker);
}
}
1.5. 스프링의 IoC
1.5.1. 오브젝트 팩토리를 이용한 스프링 IoC
애플리케이션 컨텍스트와 설정정보
스프링 빈
스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트
오브젝트 단위의 애플리케이션 컴포넌트
빈 팩토리 == 애플리케이션 컨텍스트
빈 팩토리가 스프링 빈의 생성 관계설정, 사용 등을 제어해준다. (제어의 역전)
빈 팩토리: IoC의 기본 기능에 초점
애플리케이션 컨텍스트: 범용적인 IoC 엔진 같은 역할을 수행
@Configuration
- 애플리케이션 컨텍스트 또는 빈 팩토리가 사용할 설정정보라는 표시
@Bean
- 오브젝트 생성을 담당하는 IoC용 멤버 변수, 메소드 등이 될 수 있다.
1.5.2. 애플리케이션 컨텍스트의 동작방식
애플리케이션 컨텍스트의 장점
- 클라이언트는 구체적인 팩토리 클래스를 알 필요가 없다.
- 애플리케이션 발전 -> DaoFactory같은 IoC를 적용한 오브젝트 점차 추가되어 사용에 번거로움이 있음 -> 애플리케이션 컨텍스트를 사용하면 새로운 오브젝트 팩토리를 인지하거나 직접 생성하는 번거로움 없어짐.
- 즉, 일관된 방식으로 원하는 오브젝트를 가져올 수 있다.
- 애플리케이션 컨텍스트는 종합 IoC 서비스를 제공해준다.
- 단지 오브젝트 생성과 다른 오브젝트와의 관계설정만이 전부가 아님.
- 오브젝트가 만들어지는 방식, 시점과 전략을 유연하게 가져갈 수 있음.
- 애플리케이션 컨텍스트는 빈을 검색하는 다양한 방법을 제공한다.
- getBean(): 빈의 이름을 이용해 빈을 찾아준다.
- 타입만으로 빈을 검색 or 어노테이션 설정이 되어 있는 빈을 찾을 수 있다.
Author And Source
이 문제에 관하여(토비의 스프링 [1.4장 - 1.5장] 발표 스터디 자료), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@devsigner9920/토비의-스프링-1.4장-1.5장-발표-스터디-자료저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)