티스토리 뷰
IoC는 Dependency Lookup 과 Dependency Injection 으로 나뉜다.
□ Dependency Lookup
IoC 컨테이너는 각 컨테이너에서 관리할 객체들을 위한 별도의 Bean 설정파일을 가진다. (XML 파일)
이런 저장소에서 사용자가 사용하고자 하는 빈을 특정 id로 찾아서 사용하는 방식.
Bean을 Lookup 하기 위하여 컨테이너에 제공하는 API와 의존관계가 발생(ApplicationContext의 getBean() 메소드)
가능한 Dependency Lookup을 사용하지 않는 것이 컨테이너의 종속성을 줄일 수 있다.
□ Dependency Injection (Spring에서 사용)
Setter Injection : Setter(속성) 메소드를 이용, Annotation 사용
* Java 코드
public class BoardServiceImpl implements BoardService{ private BoardDAO boardDAO; public void setBoardDao(BoardDAO boardDAO){ this.boardDAO = boardDAO; } } |
* Bean 설정 파일
<bean id="boardService" class="com.board.BoardServiceImpl"> <property name="boardDAO" ref="boardDAO" /> </bean> <bean id="boardDAO" class="com.board.BoardDAO" /> |
Constructor Injection : 생성자 메소드를 이용
* Java 코드
public class BoardServiceImpl implements BoardService{ private BoardDAO boardDAO; public BoardServiceImpl(BoardDAO boardDAO){ this.boardDAO = boardDAO; } } |
* Bean 설정 파일
<bean id="boardService" class="com.board.BoardServiceImpl"> <constructor-arg ref="boardDAO" /> </bean> <bean id="boardDAO" class="com.board.BoardDAO" /> |
'Spring' 카테고리의 다른 글
Eclipse에서 Maven 프로젝트 생성, Git Hub 연동 (0) | 2020.05.02 |
---|---|
Spring 버전 차이 (0) | 2019.07.15 |
JPA Hibernate (0) | 2019.07.14 |
Spring Annotation (0) | 2019.07.14 |
Spring Framework (0) | 2018.09.09 |