이전 포스트 [스프링 웹프로젝트 연습 소스_]를 기반으로 전자정부프레임웍과 연계해서 구축해 보았습니다.
- 표준프레임워크 적용방안 3가지(신규구축, 연계구축, 병행구축)중 연계구축? or 병행구축? 방식으로 적용(아래그림참조)
- egov(표준프레임워크)3.5.x( https://github.com/eGovFrame/egovframe.rte.3.5 ) 와 new스프링앱 비교
egov3.5.x (jdk1.8, Spring4.1.2, Mybatis3.3.0) / new스프링앱(open-jdk1.8.4, Spring4.3.2, Mybatis3.2.8)
- 연계구축 예)
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
@Service
public class 구현클래스명 extends EgovAbstractServiceImpl implements 인터페이스 클래스명{
...
}
- 기술문서참조: https://appsnuri.tistory.com/429 ( EgovAbstractServiceImpl클래스 사용 )
- 기술문서참조: https://micropilot.tistory.com/2780 (EgovAbastactMapper 클래스 사용)
- 아래는 수동으로 적용시 필요하고, Maven pom.xml 사용시 (아래 Ps2.참조) 자동으로 다운 받으므로 필요없음.
egovframework.rte.fdl.cmmn-3.5.0.jar 사용 ( /src/main/webapp/WEB-INF/lib 폴더에 필요한 jar파일 복사후 import 적용
WEB_INF_lib.zip (10개의 파일 존재함- 필수적인 2개의 jar만 dependency import 함.)
- dependency import 한 파일명 2개: egovframework.rte.fdl.cmmn-3.5.0.jar , egovframework.rte.psl.dataaccess-3.5.0.jar
- 전자표준정부프레임워크 검수체크시 고려사항 7가지.(아래)
MVC패턴 ( JSP -> Controller-VO -> Service-VO -> DAO-SQL ) - 모델2 MVC 기존 적용됨
1. Controller사용: MVC패턴사용체크를 @Controller 애노테이션 사용여부로 판단. -기존 적용됨
2. 비지니스구현에 @Servce 애노테이션사용: interface클래스 생성. -기존 적용됨
-> 인터페이스명impl클래스는 반드시 extends EgovAbstractServiceImpl 사용 후 implements 인터페이스명).
3. 반드시 EgovAbstractServiceImpl 인터페이스사용. -*신규적용 import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
- @Service (Board서비스, Reply서비스, Member서비스 에 모두 적용)
public class BoardServiceImpl extends EgovAbstractServiceImpl implements IF_BoardService {
4. 모델(DAO)구현에 @Repository 애노테이션사용: DAO클래스는 아래 둘중에 하나적용. -기존 적용됨
반드시 extends EgovAbstractDAO 적용(iBatis). -*신규적용 import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
반드시 extends EgovAbstractMapper(MyBatis). -*신규적용 import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
- @Repository (Board DAO, Reply DAO, Member DAO 에 모두 적용)
public class BoardDAOImpl extends EgovAbstractMapper implements IF_BoardDAO {
5. sql mapping config xml로 매핑파일로 경로설정. -기존 직용됨 (root-context.xml 파일)
6. sql 매핑파일(쿼리) 사용. -기존 적용됨
7. 클래스간 데이터전달객체 VO(Value Object)클래스 사용. -기존 적용됨
#Ps1. 전자표준정부프레임웍 pom.xml 추가.
</properties>
<egovframework.rte.version>3.5.0</egovframework.rte.version>
</properties>
<!-- egovframework.rte 필수 -->
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.cmmn</artifactId>
<version>${egovframework.rte.version}</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>${egovframework.rte.version}</version>
</dependency>
#Ps2. root-context.xml 파일 전자정부프레임웍연계구축으로 수정한 핵심부분.
<bean id="sqlSession"
class="org.mybatis.spring.SqlSessionFactoryBean">
<!--
JDBC커넥션을 처리하는 DataSource와 mybatis를 연결.
-->
<property name="dataSource" ref="dataSource" />
<!--
mybatis 전용 설정파일을 스프링과 함께 작동하도록 연결함.
/src/main/resources/mybatis-config.xml
-->
<property name="configLocation"
value="classpath:/mybatis-config.xml"></property>
<!--
MyBatis가 동작하면 XML Mapper를 인식하도록 함.
/src/main/resources/mappers/memberMapper.xml
mapperLocations라는 속성을 추가하고, 작성된 mappers 폴더내의 어떤 폴더에서건
Mapper.xml로 끝나면 자동으로 인식하도록 함.
-->
<property name="mapperLocations"
value="classpath:mappers/**/*Mapper.xml"></property>
</bean>
<!--
MyBatis에서 DAO를 이용하는 경우, SqlSessionTemplate라는 것을 이용해서 DAO를 구현함.
mybatis-spring에서 제공하는 SqlSessionTempalte객체는 기본적인 트랜잭션 관리나 쓰레드 처리의
안정성등을 보장해주고, 개발자들이 직접 DB 연결, 종료작업하는 것을 줄여줌.
SqlSessionFactory를 생성자로 주입함.
-->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory"
ref="sqlSession"></constructor-arg>
</bean>
<!-- egov 연계시 에러 발생 하는 부분 때문에 추가 -->
<bean id="leaveaTrace" class="egovframework.rte.fdl.cmmn.trace.LeaveaTrace">
<property name="traceHandlerServices">
<list>
<ref bean="traceHandlerService" />
</list>
</property>
</bean>
<bean id="traceHandlerService" class="egovframework.rte.fdl.cmmn.trace.manager.DefaultTraceHandleManager">
<property name="reqExpMatcher">
<ref bean="antPathMater" />
</property>
<property name="patterns">
<list>
<value>*</value>
</list>
</property>
<property name="handlers">
<list>
<ref bean="defaultTraceHandler" />
</list>
</property>
</bean>
<bean id="antPathMater" class="org.springframework.util.AntPathMatcher" />
<bean id="defaultTraceHandler" class="egovframework.rte.fdl.cmmn.trace.handler.DefaultTraceHandler" />
전자정부 프레임웍 연계구축_03 (0) | 2019.11.29 |
---|---|
전자정부 프레임웍 연계구축_02 (0) | 2019.11.28 |
스프링BOOT사용_2 (0) | 2019.10.23 |
스프링BOOT사용_1 (0) | 2019.10.21 |
스프링 웹프로젝트 연습_12 (0) | 2019.10.20 |
댓글 영역