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> |