Gentle Breeze

Technical Service <5> IdGeneration Service 본문

⑦ IFSS 방법론/IFSS 기초(개발자)

Technical Service <5> IdGeneration Service

재령 2008. 10. 8. 11:36
* IdGeneration Service
  
- 정의 : unique 한 id 값을 생성하는 기능을 제공

- 종류 : IIdGenerationService 가 Interface    
    * TableIdGenerationService (주로 사용)
    * SequenceIdGenerationService : Sequence Object 를 지원하는 DB에서만 사용 가능 (사용 안함)
    * UUIdGenerationService : UUID 생성 알고리즘 이용 ID를 16 byte로 랜덤하게 생성 (일관성 없음 사용 안함)

- strategy : unique 한 id 값을 생성하기 위한 전략
- key-table : unique 한 id 값을 뽑아 낼 talbe 명

- prefix : 접두사
- cipers : prefix 를 제외하고 prefix 뒤에 n자리의 값이 와야 함
- fillChar : cipers의 비어있는 공간을 채울 문자 (default = 0)

- TableIdGenerationService를 이용하기 위해서는 unique 한 id 값 생성을 위한 table을 미리 만들어 두어야 함

- 예시 (TableIdGenerationService)
  * xml
     <bean name="TableIdGenerationService"
            class="systemier.services.idgen.impl.TableIdGenerationService" destroy-method="destroy">
         <property name="dataSource" ref="common_datasource"/>
         <property name="strategy" ref="mixPrefix"/>
         <config:configuration  block-size="1" table="ids" key-table="BOARD"/>    
     </bean>
 
     <bean name="mixPrefix" class="systemier.services.idgen.impl.strategy.MixPrefix">
         <property name="prefix" value="BOARD-"/>
         <property name="cipers" value="5"/>
         <property name="fillChar" value="0"/>
     </bean>

  * java class
       IIdGenerationService id = (IIdGenerationService) context
                   .getBean("TableIdGenerationService");
       String newId = id.getNextStringId();
 
       System.out.println(newId);

Comments