BACK-END/SPRING

전자정부 프레임워크 샘플 코드 분석 (java 파일)

bkjo94 2022. 4. 26. 13:45

전자정부 프레임워크 프로젝트 생성 시 샘플 코드를 포함시킨 상태로 생성하는 경우 샘플 코드에 대한 파일이 자동으로 구성된다.

java 파일들에 대해 어떻게 구성되어 있고 역할이 무엇인지 알아보자.

 

① Exception이 발생하는 경우 핸들링하는 java 파일이다.

② context-aspect.xml 설정 파일에서 ①의 java 파일에 대한 bean을 등록하고 있다.

③ egovHandler라는 id를 가진 bean을 참조하는 것이다.

④ class 속성을 보면 ①의 java 파일에 대한 패키지 경로를 잡고 bean으로 등록하고 있는 것을 볼 수 있다.

 

 

 

EgovBindingIntiailzer는 webBindingInitializer에서 커스터마이징 된 표준프레임워크의 java 파일이고

    EgovImgPaginationRenderer는 페이징처리를 하는 java 파일이다.

② dispatcher-servlet.xml 설정 파일에서 ①의 java 파일에 대한 bean을 등록하고 있다.

RequestMappingHandlerAdpater 클래스를 bean으로 등록할 때 webBindingIntializer 속성을 가진

    EgovBindingIntiailzer 클래스를 설정한다.

    RequestMappingHandlerAdpater 클래스는 HTTP 요청을 읽어 실행시킬 Controller의 Method를 선택하는

    역할을 한다.

④ 페이징 처리에 대한  EgovImgPaginationRenderer 클래스를 bean으로 등록하고 있고

    등록 된 bean의 paginationManager에서 imageRenderer라는 bean을 참조하고 있다.

 

 

 

① SampleDefaultVO는 페이징 처리 관련 VO java 파일이고 SampleVO는 sample 테이블의 모델에 대한

    VO java 파일이다.

   SampleMapper는 sample에 관한 데이터처리 mapper java 파일이다.

② VO java 파일에 대해서는 표시 된 xml 파일들에서 잡아주는 설정이 된다.

③ MyBatis의 경우 mappers 폴더 하위에 있는 EgovSample_Sample_SQL.xml 파일에서 

    SampleMapper 클래스가 있는 package 경로를 mapper 태그의 namespace 속성에 잡아준다.

④ iBatis의 경우 sample 폴더 하위에 있는 EgovSample_Sample_SQL.xml 파일에서 

    VO 클래스가 있는 package 경로를 typeAlias 태그의 type 속성에 잡아준다.

⑤ iBatis의 경우 sql-map-config.xml 파일에서 sample 폴더 하위에 있는 EgovSample_Sample_SQL.xml 파일의

    경로를 잡아준다.

⑥ MyBatis의 경우 sql-mapper-config.xml 파일에서 configuration 태그의 typeAliases 태그안에 VO 클래스에 대한 

    package 경로를 잡아준다.

 

 

 

① EgovSampleService는 sample 관련 서비스의 선언부가 담긴 인터페이스 java 파일이다.

② EgovSampleServiceImpl은 EgovSampleService을 implements 받고 있는 sample 관련 서비스의 구현부가 담긴

    java 파일이다. 

 

 

 

① SampleDAO는 SampleVO와 관련해서 데이터를 주고받는 메서드의 구현부가 담긴 java 파일이다.

② SampleMapper는 SampleVO와 관련해서 데이터를 주고받는 메서드의 선언부가 담긴 인터페이스 java 파일이다.

 

 

 

① EgovSampleController는 사용자의 요청을 받고 서비스에 데이터는 넘겨주는 역할과

    모델로부터 받은 데이터를 지정된 뷰에 데이터를 넘겨주는 역할을 한다.

    egovframework 패키지 하위에 있는 controller 어노테이션에 대해 전부 스캔해주는 설정을 한다.

    이러한 설정때문에 뷰에서 넘어오는 url과 매핑되어 데이터를 받을 수 있다.