추가 개발

어빌리스츠와 함께 고객의 메인 화면과 플러그인을 개발에 도움이 되는 곳입니다.


환경설정

● 개발을 위한 기반 시스템 설치 및 구성

  1. Java 8 설치를 합니다.
    https://openjdk.java.net/install/
    
  2. Gradle 3.3 설치
    https://services.gradle.org/distributions/gradle-3.3-all.zip
    
  3. Eclipse 설치
    https://www.eclipse.org/
    


● 어빌리스츠 소스 다운로드

  1. Git로 abilists_client을 Clone를 합니다.
    $ git clone https://github.com/abilists/abilists_client.git
    
    회사 자체에서 회사의 고유 업무 기능를 개발할 수 있도록 Client Controller를 무료로 제공하고 있습니다.
    아래는 소스(abilists_client)를 Clone하여 다운로드한 다음, Controller 소스 코드를 오픈한 이미지 입니다.

    www.abilists.com

  2. 어빌리스츠(abilists)기반에 사용 할 수 있는 새로운 플러그 인 개발에 대하여 설명합니다.
    더 자세한 정보는 아래의 [플러그인 > 새 플러그인 개발] 또는 Git에 있는 README.md를 확인해 주시기 바랍니다.
    https://github.com/abilists/plugin_sample
    
    Git로 abilists_plugins을 Clone를 합니다.
    $ git clone https://github.com/abilists/plugin_sample.git
    
    아래는 샘플 플러그인 소스를 Clone하여 Eclipse에서 오픈한 소스입니다.

    www.abilists.com



개발 방법

● 소스의 구성및 각각의 역할을 설명합니다.

  1. Controller내에서 화면단에 표현할 수 있게 Model객체를 생성합니다. 모든 데이터의 화면 출력은 abilistsModel를 통해서 보여줍니다.
    새 화면에 새로운 데이터를 생성하여 표현하시려면, AbilistsModel를 extends하여 표현해 주시기 바랍니다.
    AbilistsModel abilistsModel = new AbilistsModel();
    
    로그인 사용자의 정보를 세션에서 가지고 옵니다.
    this.handleSessionInfo(request.getSession(), sltSamplePara);
    
    입력 데이터에 대한 체크후 에러가 있는지 확인 합니다. 에러가 있을 떼에는 에러 화면으로 전환 됩니다.
    Map mapErrorMessage = new HashMap();
    if (bindingResult.hasErrors()) {
    	response.setStatus(400);
    	mapErrorMessage = this.handleErrorMessages(bindingResult.getAllErrors(), locale);
    	model.addAttribute("mapErrorMessage",  mapErrorMessage);
    	return "apps/errors/parameterErrors";
    }
    
    원 타임 토크(OPT)를 체크합니다. 사용자가 많으면, 토큰 저장소를 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");
    
  2. ClientServiceImpl 클래스에서 처리하는 CRUD 비즈니스 로직입니다.
    데이터 수집(검색)하는 Method입니다. (slt = select)
    @Override
    public List sltCleintList(CommonPara commonPara) throws Exception {
    	
    
    	return null;
    }
    
    데이터 입력하는 Method입니다. (ist = insert)
    @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;
    }
    

● 개발 환경에서 실행합니다.

  1. abilists_client을 Jetty를 통해서 Local에서 실행합니다.
    *에러가 발행 할 시에는 gradle clean코만도를 한번 실행하고 Jetty를 기동합니다.
    $ cd ~/git/abilists_client
    $ gradle clean
    $ gradle jettyRun