앞선 프레임워크 분석으로 전반적인 프레임워크 데이터 흐름에 대해서 알아보았고
이번에는 다루지 않았던 파일들에 대해서 어떤 방식으로 사용되는지 확인해볼 예정이다.
출처 : 전자정부 프레임워크 샘플 코드 분석 (java 파일) (tistory.com)
1. EgovSampleExcepHndlr.java , EgovSampleOthersExcepHndlr.java
Handling : 에러발생등 예외 상황을 매끄럽게 처리 할 수 있도록 한다라는 뜻,,
좌측의의 EgovSampleExcepHndlr , EgovSampleOthersExcepHndlr 라는파일은
에러가 발생할 경우 핸들링하는 java 파일이다.
우측의 context-aspect.xml이라는 설정파일에서 java파일에 대한 bean을 등록하고있다.
egovHandler라는 id를 가진 bean을 참조하여
위의 java파일의 패키지 경로를 잡고 bean으로 등록하는것을 확인 할 수 있다.
2. EgovBindingInitializer.java , EgovImgPaginationRenderer.java
위의 그림은 클라이언트 > 스프링 컨테이너 > 서버 의 과정인데
바인딩 결과가 박스쳐진 bindingResult이고
위의 WebDataBinder에 등록된 프로퍼티 에디터,컨버전 서비스를 통해 바인딩 결과를 도출해낼 수 있다.
이 WebDataBinder는 WebBindingInitializer나 @InitBinder메서드를 통해서 등록된 변환 기능 오브젝트를 이용해
HTTP요청 파라미터를 모델의 프로퍼티에 맞도록 변환해서 넣어주는역할을 한다.
EgovBindingInitializer.java : webBindingInitializer 에서 커스터마이징 된 표준 프레임워크의 java파일
EgovImgPaginationRenderer.java : 페이징 처리를 하는 java파일
위 파일은 해당 기능을 위해 사용되는데,
Dispatcher-sevelet.xml 파일에서
위의 EgovBindingInitializer.java 파일의 bean을 등록하고 RequestMappingHandlerAdapter 클래스를
WebBindingInitializer속성의 EgovBindingInitializer 클래스로 설정한다.
RequestMappingHandlerAdapter 클래스는 HTTP 요청을 읽어 실행시킬 Controller의 메소드를 선택하는 역할을 한다.
또한 Dispatcher-sevelet.xml 파일에서
EgovImgPaginationRenderer.java 파일에 대한 bean객체를 등록하고
등록된 bean의 paginationManager에서 imageRenderer의 bean을 참조한다.
3. DefaultVO,VO,Mapper
sqlmap 폴더에서 mappers폴더와 sample폴더 하위의 SQL.xml 파일의 차이가 뭔지 궁금했었는데 차이점을 알게되었다.
SampleMapper : Sample에 관한 데이터 처리 mapper java파일
SampleDefaultVO : 페이징 처리 관련 VO java파일
SampleVO : Sample 테이블의 모델에 대한 VO java파일
우측의 xml 파일들에서 VO.java파일을 잡아주는 설정을 할 수 있다.
!!!!
ibatis 연동
가. sample 폴더 하위의 SQL.xml에서 VO패키지가 있는 경로를 typeAlias태그의 type 속성으로 잡아준다.
나. sql-map-config.xml 파일에서 sample폴더 하위의 SQL.xml 파일의 package 경로를 sqlMap태그의 resource 속성으로
잡아준다.
mybatis 연동 :
가. mappers 폴더 하위의 SQL.xml에서 SampleMapper클래스가 있는 package경로를 mapper태그의 namespace 속성으로 잡아준다.
나. sql-mapper-config.xml 파일의 typeAlias 태그에 VO클래스의 package 경로를 type 속성으로 잡아준다.
오늘 안 사실 : 나는 ibatis를 이용해 SQL을 연동하고 있었다.
!!!!
4. EgovSampleService , EgovSampleServiceImpl
EgovSampleService : Sample관련 Service의 선언부가 담긴 인터페이스 java파일
EgovSampleServiceImpl : EgovSampleService을 implements받고 있는 서비스의 구현부가 담긴 interface java파일
5. SampleDAO , SampleMapper
SampleDAO : SampleVO와 관련하여 데이터를 주고받는 메서드의 구현부가 담긴 java파일
SampleMapper : SampleVO와 관련하여 데이터를 주고받는 메서드의 선언부가 담긴 interface java 파일
6. EgovSampleController
Controller : 사용자의 요청을 받고 서비스에 데이터를 넘겨주는 역할과 모델로부터 받은 데이터를 지정된 뷰에 넘겨주는 역할을 한다.
앞서 말했던 dispatcher-servlet.xml의 component-scan을 통해 controll 어노테이션에 대해 전부 스캔을 한다.
이러한 설정으로 뷰에서 넘어오는 url과 매핑되어 데이터를 받을 수 있다.
7. 다국어 처리
위의 message폴더 하위에 다국어 property 파일들이 모여있는데 이 값 설정은
context-common.xml의 bean에서 경로를 잡고있음
'💻Spring' 카테고리의 다른 글
전자정부 프레임워크_도소매 플랫폼 프로젝트_데이터 모델링 (0) | 2022.10.28 |
---|---|
전자정부 프레임워크 3일차 - 프레임워크 커스터마이징 (0) | 2022.08.03 |
전자정부프레임워크 3일차 - 프레임워크 구조 분석(반복) (0) | 2022.08.03 |
전자정부 프레임워크 2일차 - 프레임워크 분석 (0) | 2022.08.02 |
전자정부프레임워크 1일차 어려웠던 점 (0) | 2022.08.01 |