본문 바로가기

FrameWorks

Spring - Spring & Struts Framework 흐름도


Spring-StrutsFramework 응용 프로그램 흐름도

MVC (Model-View-Controller) 기반의 3계층 Layer에 Spring-Struts Framework을 적용하여실질적으로 구현되는 응용 프로그램의 논리적 물리적 구성과 주요 기능을 살펴본다.

Spring-Struts Framework이 웹 페이지에서Request를 전송해서 Response를 처리하는 일련의 프로세스를 Layer 측면에서의 기능 흐름도와 이를 Control 해주는 Configuration 파일의 기능 흐름도이다.


ⓒ ⓓ 최초 웹 서버를 로딩할 때 init 파일인 web.xml은 Spring-StrutsFramework 의 주요 설정 파일인 struts_config.xml 과 spring_config.xml 의정보를 메모리에 상주시킨다.

 웹 페이지에서 URI 정보를통해 Request 정보를 전송한다.

예> http://www.my_site_name.com/mycontext/XXXAction.do

전송된 Request정보는 Dispatcher 객체 정보를 관리하는 Struts-Config.xml 파일에정의된 Action Mapping과 Form BeanDefinition 설정 정보를 호출한다.

 XXX_Struts_Config.xml 의 기능

1) Action Mapping: URI와 Mapping된 (Controller)Action Class로 이동한다.

<action-mappings>

<action path="/actionName" type="packageName.XXXAction" name="XXXForm" scope="request"/>

</action-mappings>

2) Form BeanDefinition : ⑧의 반환받을 VO 객체를 저장할 bean 객체를 지정한다.

<form-bean name="XXXForm" type="org.apache.struts.action.DynaActionForm">

<form-property name="XXXVO" type="packagename.vo.XXXVO" />

</form-bean>

 HTTP 정보를 받은 ActionClass는 Interface를 통해 Implement를호출하고 Business Logic을 처리할 정보를 전달한다.

 Implement에서 구현된Business Logic은 Spring-Config.xml 파일이 지정한 Object Definition 정보와 TransactionDefinition 정보에 의해 지정된 DAOInterface를 통해 DAOImplement를 호출하여 데이터베이스와 Access 한다.

 XXX_Spring_Config.xml ->Object/ Transaction Definition 설정

1) DATA ACCESS OBJECT(DAO) DEFINITIONS

<bean id="XXXDAOImpl" class="spring.dao.XXXDAOImpl" lazy-init="true">

<property name="dataSource"><ref bean="dataSource"/></property>

</bean>

2) BUSINESS OBJECTDEFINITIONS

<bean id="XXXImpl" class="spring.XXXImpl">

<property name="XXXDAO"><ref local="XXXDAOImpl"/></property>

</bean>

3) BUSINESS OBJECTTRANSACTION DEFINITIONS

<bean id="XXX" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager"><ref bean="transactionManager"/></property>

<property name="target"><ref local="XXXImpl"/></property>

<property name="transactionAttributes">

<props><prop key="*">PROPAGATION_REQUIRED</prop></props>

</property>

</bean>

④ ⑤ DAOImplement 에서 얻어진 정보는 VO객체에 setting 된다.

 DAOImplement 가 종료되면 VO 객체는피호출 클래스인 Implement에 Return한다.

 Implement 는 VO 객체는 피호출 클래스인 Action Class에 Return 된다.

 VO 객체를 반환 받은Action Class는 Dispatcher 객체 정보를 관리하는 Struts-Config.xml 파일에 정의된 Action Mapping에의해 View Layer의 웹 페이지로 bean 정보를 Forwarding 한다.

 XXX_Struts_Config.xml 의 기능

<action>

<forward name="XXXList" path="XXX.jsp" />

</action>