목차 >> Cache Manager 
+- GlueMessageLayout  
+- GlueXmlMessageLayout  
+- GlueDBMessageLayout

9장 Layout Manager

GlueDBMessageLayout

GlueDBMessageLayout은 DB 기반의 GlueMessageLayout구현체 이며, applicationContext.xml에 다음과 같이 작성할 수 있습니다. GlueDBMessageLayout 의 bean property는 Java Doc을 참고합니다. (GlueAPI)

<bean id="layoutManager" class="com.poscoict.glueframework.message.layout.GlueDBMessageLayout">
    <property name="dao" ref="masterdao"/>
    <property name="cacheManager" ref="cacheManager"/>
</bean>
<bean id="masterdao" class="com.poscoict.glueframework.dao.jdbc.GlueJdbcDao">
    <property name="dataSource"><ref local="masterData"/></property>
    <property name="queryManager"><ref local="queryManager"/></property>
</bean>
<bean id="masterData" class=". . ."/>

다음은 Message Layout 구성 내용을 DB table 로 다음과 같이 정의 할 수 있습니다.

Column Nullable type Comment
LAYOUT_ID NOT NULL VARCHAR msg id
ATTR_SEQ NOT NULL NUMBER 항목의 순서
ATTR_TYPE NOT NULL VARCHAR E,G,GE,
ATTR_ID NOT NULL VARCHAR
ATTR_NM VARCHAR
DATA_TYPE NOT NULL NUMBER 1:STRING,2:NUMBER,3:DATE,6:ARRAY
DATA_LEN NOT NULL NUMBER
DATA_PREC NUMBER

db에 관리되는 layout 정보는 다음 query를 응용해서 dao를 통해 조회할 수 있습니다.

SELECT ATTR_SEQ as MDL_DEFINE_DT_NM_SEQ,
   ATTR_TYPE    as MDL_DEFINE_DT_NM_GROUP_TP,
   ATTR_ID      as STANDARD_ENGLISH_ID,
   ATTR_NM      as STANDARD_KOREAN_NAME,
   DATA_TYPE    as MDL_DEFINE_DT_NM_DATA_TP,
   DATA_LEN     as MDL_DEFINE_DT_NM_LEN,
   DATA_PREC    as MDL_DEFINE_DT_NM_V_DECI_PREC
FROM MESSAGE_DEFINITION
WHERE LAYOUT_ID=?
ORDER BY ATTR_SEQ ASC