アーキテクチャ統合のポイント.
統合spring 2+struts 1.2 + hibernate3.2
プログラムがspring 2を使用するには、springプラグインjarパッケージとspringのクラスライブラリの外が必要です.
1.web.xmlはspringのリスニングを構成します.
contextConfigLocationコンテキストパラメータによるspringプロファイルの指定
2.Spring統合struts 1
Spring strutsのサポートには、プロキシモード、コントローラ継承、プラグインモードの3つのモードがあり、ここではコントローラモードを使用します.すなわちspirngのcontrollerプロセッサを採用し、実際にspringのプロセッサはstrutsを継承する.修正したstrutsは以下の通りです.
struts-config.xml構成
struts-action.xmlとspring-action.xml構成
beanのname属性はactionのpathの名前と同じでなければなりません
このようにstrutsのactionはspringのIOC特性を使うことができます
3 spring集積hibernate
プログラムがspring 2を使用するには、springプラグインjarパッケージとspringのクラスライブラリの外が必要です.
1.web.xmlはspringのリスニングを構成します.
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
contextConfigLocationコンテキストパラメータによるspringプロファイルの指定
<context-param>
<param-name>
javax.servlet.jsp.jstl.fmt.localizationContext
</param-name>
<param-value>/i18nMessage/MessageResources</param-value>
</context-param>
2.Spring統合struts 1
Spring strutsのサポートには、プロキシモード、コントローラ継承、プラグインモードの3つのモードがあり、ここではコントローラモードを使用します.すなわちspirngのcontrollerプロセッサを採用し、実際にspringのプロセッサはstrutsを継承する.修正したstrutsは以下の通りです.
struts-config.xml構成
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>
struts-action.xmlとspring-action.xml構成
<action path="/departmentAction" name="departmentForm"
attribute="departmentForm" scope="request" parameter="dispatch">
<forward name="error" path="/error.jsp" />
<forward name="update"
path="/department/departmentForm.jsp" />
<forward name="list" path="/department/department.jsp" />
<forward name="flagAlex" path="/department/departmentflagAlex.jsp" />
<forward name="selTreeList" path="/dialog/selectTree.jsp" />
<forward name="treeList" path="/department/tree.jsp" />
<forward name="treeDept" path="/serviceItem/treeDept.jsp" />
<forward name="selectTreeList" path="/docFlow/runFlow/selectTreeList.jsp"/>
</action>
<bean name="/departmentAction"
class="com.ving.xzfw.action.DepartmentAction" scope="request">
<property name="departmentService" ref="departmentService" />
<property name="disService" ref="distictService" />
<property name="dictionaryTypeService"
ref="dictionaryTypeBOService" />
<property name="dictionaryService" ref="dictionaryService" />
<property name="logInfoService" ref="logInfoService" />
</bean>
beanのname属性はactionのpathの名前と同じでなければなりません
このようにstrutsのactionはspringのIOC特性を使うことができます
3 spring集積hibernate
<bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/music"/>
<property name="username" value="root"/>
<property name="password" value="admin"/>
</bean>
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>com/tlb/db/domain/User.hbm.xml</value>
<value>com/tlb/db/domain/Song.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean name="userDao" class="com.tlb.db.dao.UserDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
の構成が完了すると、DAOでsessionFactoryを呼び出してさまざまな操作を行うことができます.自分でデータベースの共通クラスをたくさん書く必要はありません.HibernateDaoSupportは豊富な方法を提供し、私たちが使用するのに十分です.またspringの異常なパッケージメカニズムのため、私たちのプログラムコードは、try catchを多く必要としません.public class UserDao extends HibernateDaoSupport implements IUserDao {
public void insUser(User user) throws DataAccessException {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(user);
}
}