● 개발을 위한 기반 시스템 설치 및 구성
https://openjdk.java.net/install/
https://services.gradle.org/distributions/gradle-3.3-all.zip
https://www.eclipse.org/
● 어빌리스츠 소스 다운로드
abilists_client
을 Clone를 합니다.$ git clone https://github.com/abilists/abilists_client.git회사 자체에서 회사의 고유 업무 기능를 개발할 수 있도록
Client Controller
를 무료로 제공하고 있습니다.abilists_client
)를 Clone하여 다운로드한 다음, Controller 소스 코드를 오픈한 이미지 입니다.
플러그 인
개발에 대하여 설명합니다.README.md
를 확인해 주시기 바랍니다.https://github.com/abilists/plugin_sampleGit로
abilists_plugins
을 Clone를 합니다.$ git clone https://github.com/abilists/plugin_sample.git아래는 샘플 플러그인 소스를 Clone하여 Eclipse에서 오픈한 소스입니다.
● 소스의 구성및 각각의 역할을 설명합니다.
Controller
내에서 화면단에 표현할 수 있게 Model객체를 생성합니다. 모든 데이터의 화면 출력은 abilistsModel를 통해서 보여줍니다.extends
하여 표현해 주시기 바랍니다.AbilistsModel abilistsModel = new AbilistsModel();로그인 사용자의 정보를 세션에서 가지고 옵니다.
this.handleSessionInfo(request.getSession(), sltSamplePara);입력 데이터에 대한 체크후 에러가 있는지 확인 합니다. 에러가 있을 떼에는 에러 화면으로 전환 됩니다.
Map원 타임 토크(OPT)를 체크합니다. 사용자가 많으면, 토큰 저장소를mapErrorMessage = new HashMap (); if (bindingResult.hasErrors()) { response.setStatus(400); mapErrorMessage = this.handleErrorMessages(bindingResult.getAllErrors(), locale); model.addAttribute("mapErrorMessage", mapErrorMessage); return "apps/errors/parameterErrors"; }
memcached
로 옮기는 것을 추천합니다.String key = this.makeKey(istSamplePara.getUserId(), AbstractBaseController.PREFIX_IST_KEY); if (!istSamplePara.getToken().equals(commonBean.getTokenExpireMap(key))) { mapErrorMessage.put("errorMessage", message.getMessage("parameter.error.token.message", null, locale)); model.addAttribute("errorMessage", mapErrorMessage); return "apps/errors/parameterErrors"; }데이터 처리가 정상일 경우, 화면단에 메세지를 보여주기 위한 부분입니다.
redirectAttributes.addFlashAttribute("save", "completed");
ClientServiceImpl
클래스에서 처리하는 CRUD 비즈니스 로직입니다.@Override public List데이터 입력하는 Method입니다. (ist = insert)sltCleintList(CommonPara commonPara) throws Exception { return null; }
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public boolean istCleint(CommonPara commonPara) throws Exception { return true; }데이터 갱신하는 Method입니다. (udt = update)
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public boolean udtUCleint(CommonPara commonPara) throws Exception { return true; }데이터 삭제하는 Method입니다. (dlt = delete)
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public boolean dltCleint(CommonPara commonPara) throws Exception { return true; }
● 개발 환경에서 실행합니다.
abilists_client
을 Jetty를 통해서 Local에서 실행합니다. gradle clean
코만도를 한번 실행하고 Jetty를 기동합니다.$ cd ~/git/abilists_client $ gradle clean $ gradle jettyRun