<context:component-scan base-package="com"/> 질문
- 작성자 :
- 문*덕
- 작성일 :
- 2015-04-28 15:36:47
- 조회수 :
- 894
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:ptl:dispatcherservlet
위의 위키 주소에서 질문이 있습니다.
질의 내용이 2500글자를 초과하여 txt 파일을 첨부해드리오니 확인후 답변 부탁드리겠습니다..
수고하세요!!
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:ptl:dispatcherservlet
위의 위키 주소에서 질문이 있습니다.
질의 내용이 2500글자를 초과하여 txt 파일을 첨부해드리오니 확인후 답변 부탁드리겠습니다..
수고하세요!!
A
안녕하세요. 문종덕님.
1. 위키의 주소에서 가장 하단 좌측의 WebApplicationContext에서 파일이 easycompany-service.xml이 아닌가요?
(현재는 easycompany-servlet.xml 로 되어 있네요.. 혼동이 와서요)
>해당 위키 참조시 설정 그림은 맞습니다. 실제로 사용하는 예제가 틀려서 혼선이 오신거 같습니다.
>관련 내용 검토 후 수정 처리 하겠습니다.
2. exclude 와 include를 사용하는 것이 각 DispatcherServlet(WebApplicationContext)에서는 각 컨트롤러만 사용하고
ContextLoaderListner를 통해서 서비스/레파지토리를 각 DispatcherServlet에서 공통으로 사용하는 것이 맞나요?
>해당 위키 그림을 보시면 아시겠지만, WebApplicationContext에서 WebApplicationContext 참조하는 형태로 기본 가이드 하고 있습니다.
>의도에 맞게 다르게 구성 할수도 있습니다.
3. ContextLoaderListner 를 통해서 굳이 나누지 않을(소규모 프로젝트이거나 사용 방법을 잘 알지 못하거나 불필요함에 따라) 경우이고
DispatcherServlet이 한 개일 경우 단순히 <context:component-scan base-package="egovframework" /> 로 선언해줘도 정상작동을
하였는데 문제의 소지가 있을런지요?
>문제 없습니다. 용도에 맞게 쓰시면 됩니다.
4. ContextLoaderListner 부분에서 따로 scan 부분을 지정한 곳이 없을 때
urlfilename-servlet.xml 안에 <context:component-scan base-package="egovframework"/> 설정을 해주면 다시 정상작동됩니다.
이것은 왜 그런것인지 궁금합니다.(컨트롤러, 서비스, 레파지토리를 모두 include 한 효과를 내는 것인지..
>ApplicationContext(Spring의 IoC Container)로 기동됩니다.
정확하게는 listener가 root WebApplicationContext이가 servlet이 이 root WebApplicationContext를 상속받습니다.
여기서 상속이라는 개념은 class의 extends가 아닌, 상위에 bean들을 참조할 수 있게 parent로 지정되는 방식입니다.
WebApplicationContext을 각각 선언 했기 대문에 동작 되는게 맞습니다.
1. 위키의 주소에서 가장 하단 좌측의 WebApplicationContext에서 파일이 easycompany-service.xml이 아닌가요?
(현재는 easycompany-servlet.xml 로 되어 있네요.. 혼동이 와서요)
>해당 위키 참조시 설정 그림은 맞습니다. 실제로 사용하는 예제가 틀려서 혼선이 오신거 같습니다.
>관련 내용 검토 후 수정 처리 하겠습니다.
2. exclude 와 include를 사용하는 것이 각 DispatcherServlet(WebApplicationContext)에서는 각 컨트롤러만 사용하고
ContextLoaderListner를 통해서 서비스/레파지토리를 각 DispatcherServlet에서 공통으로 사용하는 것이 맞나요?
>해당 위키 그림을 보시면 아시겠지만, WebApplicationContext에서 WebApplicationContext 참조하는 형태로 기본 가이드 하고 있습니다.
>의도에 맞게 다르게 구성 할수도 있습니다.
3. ContextLoaderListner 를 통해서 굳이 나누지 않을(소규모 프로젝트이거나 사용 방법을 잘 알지 못하거나 불필요함에 따라) 경우이고
DispatcherServlet이 한 개일 경우 단순히 <context:component-scan base-package="egovframework" /> 로 선언해줘도 정상작동을
하였는데 문제의 소지가 있을런지요?
>문제 없습니다. 용도에 맞게 쓰시면 됩니다.
4. ContextLoaderListner 부분에서 따로 scan 부분을 지정한 곳이 없을 때
urlfilename-servlet.xml 안에 <context:component-scan base-package="egovframework"/> 설정을 해주면 다시 정상작동됩니다.
이것은 왜 그런것인지 궁금합니다.(컨트롤러, 서비스, 레파지토리를 모두 include 한 효과를 내는 것인지..
>ApplicationContext(Spring의 IoC Container)로 기동됩니다.
정확하게는 listener가 root WebApplicationContext이가 servlet이 이 root WebApplicationContext를 상속받습니다.
여기서 상속이라는 개념은 class의 extends가 아닌, 상위에 bean들을 참조할 수 있게 parent로 지정되는 방식입니다.
WebApplicationContext을 각각 선언 했기 대문에 동작 되는게 맞습니다.