위의 사진을 보면 BoardServiceClient의 BoardService boardService = (BoardService) container.getBean("boardService");에서 boardService를 호출하고있다.

 

boardService는 applicationContext.xml에 있으며, 아래 사진에서 해당 코드의 내용을 확인할 수 있다.

 

그런데 특이한 점은 사진 어디에서도 boardService를 찾을 수 없다는 것이다.

그렇다면 어떻게 실행이 되는 것일까?

 

해당 부분의 해답은 아래 두 사진에서 확인할 수 있다.

실행되는 순서는 아래와 같다.

 

1. BoardServiceClient를 실행하면

2. applicationContext.xml에서

3. context:component-scan에서 scan이 진행된다.

4. 스캔을 하면서 @(어노테이션)Service("boardService")로 동일한 이름의 컴포넌트를 찾는다.

5. 그렇기 때문에 applicationContext.xml에 boardService가 없어도 스캔으로 컴포넌트된 클래스를 찾아서 BoardServiceClient에서 호출할 수 있게되는 것이다. 

+ Recent posts