[eGovFrame] 전자정부프레임워크 샘플 프로젝트 코드 분석

bi_sz·2023년 9월 6일
0

eGovFrame

목록 보기
3/3
post-thumbnail
post-custom-banner

썸네일이 너무 칙칙한 거 같아서 화사한걸로 바꿔보았습니다. ㅎㅎ

전자정부 프레임워크를 처음 사용하려니 뭐가 뭔지 모르겠어서 정리를 해보려 합니다.


전자정부프레인워크 샘플 코드 분석

EgovSampleExcepHndlr.java

EgovSampleOthersExcepHndlr.java

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

context-aspect.xml

EgovSampleExcepHndlr.java, EgovSampleOthersExcepHndlr.java

파일에 대한 bean을 등록하는 파일입니다.

egovHandler,otherHandler 라는 id를 가진 bean을 참조합니다.

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


EgovBindingIntializer.java

webBindinglnitializer에서 커스터마이징된 표준프레임워크의 java 파일입니다.

EgovLmgPaginationRenderer

페이징처리를 하는 java 파일

아래 두 개의 이미지는 dispatcher-servlet.xml 파일의 일부입니다.

RequestMapplingHandlerAdpater 클래스를 bean 으로 등록할 때 webBindinglntializer 속성을 가진 EgovBindinglntializer 클래스를 설정합니다.

RequestMappingHandleAdpater클래스는 HTTP 요청을 읽어 실행시킬 Controller의 Method를 선택하는 역할을 합니다.

페이징 처리에 대한 EgovImgPaginationRenderer 클래스를 bean으로 등록하고, 등록 된 beanpaginationManager에서 imageRenderer라는 bean을 참조합니다.


SampleDefaultVO

페이징 처리 관련 VO java 파일입니다.

SampleVO.java

sample 테이블의 모델에 대한 VO java 파일입니다.

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

SampleMapper.java

sample에 관한 데이터처리 mapper java 파일입니다.

아래 이미지는 mappers 폴더의 EgovSample_Sample_SQL.xml 파일의 일부 입니다.

MyBatis의 경우 mappers 폴더 하위에 있는 EgovSample_Sample_SQL.xml 파일에서 SampleMapper 클래스가 있는 package 경로를 mapper 태그의 namespace 속성에 잡아줍니다.

아래 이미지는 smaple 폴더의 EgovSample_Sample_SQL.xml 파일의 일부 입니다.

iBatis의 경우 sample 폴더 하위에 있는 EgovSample_Sample_SQL.xml 파일에서 VO 클래스가 있는 package 경로를 typeAlias 태그의 type 속성에 잡아줍니다.

아래 이미지는 sql-map-config.xml 파일 입니다.

iBatis의 경우 sql-map-config.xml 파일에서 sample 폴더 하위에 있는 EgovSample_Sample_SQL.xml 파일의 경로를 잡아줍니다.

아래 이미지는 sql-mapper-config.xml 파일 입니다.

MyBatis의 경우 sql-mapper-config.xml 파일에서 configuration 태그의 typeAliases 태그안에 VO 클래스에 대한
package 경로를 잡아줍니다.


EgovSampleService.java

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

EgovSampleServiceImpl.java

EgovSampleServiceimplements 받고 있는 sample 관련 서비스의 구현부가 담긴 java 파일입니다.


SampleDAO.java

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

SampleMapper.java

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


EgovSampleController

사용자의 요청을 받고 서비스에 데이터는 넘겨주는 역할과 모델로부터 받은 데이터를 지정된 뷰에 데이터를 넘겨주는 역할을 합니다.

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

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


메모

샘플 프로젝트가 아닌 진행하던 프로젝트에서
특정 경우에만 다른 쿼리문을 동작하고 싶을 때 수정했던 내용 흐름을 기억하려고 메모해둔 내용입니다. 참고용!!

kb0125 : 페이지 관련 코드 (프론트) [ jsp, js ]
bi : 데이터 관련 코드 (쿼리문) , 기능 관련 자바 코드 (백)
[ VO.java, Service.java, ServiceImpl, DAO.java ][ SQL_mssql.xml ]

1. kb0125.js [해당 뷰페이지의 js코드] pram에 flag:"bi" 추가

  • flag 의 값이 있을때 다른 동작을 하기 위해 / flag 값에 따라 다른 동작 가능

기존에 전달하던 데이터에 flag 라는 값을 추가하여 kb0125ManagerController로 전달

2. biVO.java [VO] 클래스에 flag 멤버변수 추가

1번의 동작으로 인해서 kb0125ManagerControllerGET 매핑 serchVoflag값이 담기지만, biVO 에는 멤버변수를 추가하지 않아 값이 담길 공간이 없으니 추가해줍니다.

멤버변수를 먼저 추가하고 param에 값을 추가하여도 무관합니다.

3. 데이터의 흐름

serchVO에 담긴 새로 추가한 flag 값은
kb0125ManagerController.java 의 코드에서 biService.java 함수를 호출합니다.
biService.java 함수는 biServiceImpl.java 함수를 호출합니다
biServiceImpl.javabiDAO infoDAO 를 호출하고
biDAO.java 함수에서 bi_SQL_mssql.xml 코드를 호출합니다.
쿼리문이 담겨있는 bi_SQL_mssql.xml 코드에서

추가한 데이터값 flag를 읽어올 수 있게 됩니다.

원하는 동작을위해 쿼리문에 조건문을 추가할 수 있습니다.

<when test="@egovframework.com.cmm.util.EgovMybaitsUtil@isEquals(flag,'allStat')">
</when>

위의 동작은 특정 함수를 호출할 때 다른 데이터를 조회하기 위한 코드를 수정한 내용입니다.

특정 함수를 호출할 때 읽어올 데이터를 다르게 하기 위해 쿼리문까지의 해당 호출이 시작되는 페이지의 js 코드에서부터 쿼리문이 있는 코드까지 흐름을 타고 와서 동작을 추가하는 과정이었습니다.

조회하는 데이터가 달라지는게 아닌 다른 동작을 한다면 쿼리문이 담긴 코드가 아닌 다른 부분으로 흐름을 타고 가서 수정하면 됩니다.

profile
https://li-yo.tistory.com/ 티스토리 블로그 이전 하였습니다.
post-custom-banner

0개의 댓글