单位框架学习总结
單位的框架:struts+ibatis+spring
1、web.xml(在web-inf目錄下)
重點是struts module 的servlet配置
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<!--struts module -->
<init-param>
<param-name>config/user</param-name>
<param-value>/WEB-INF/struts-usermanager.xml</param-value>
</init-param>
<init-param>
<param-name>config/security</param-name>
<param-value>/WEB-INF/struts-security.xml</param-value>
</init-param>
<init-param>
<param-name>config/resources</param-name>
<param-value>/WEB-INF/struts-resources.xml</param-value>
</init-param>
<init-param>
<param-name>config/nebula</param-name>
<param-value>/WEB-INF/struts-nebula.xml</param-value>
</init-param>
<!-- 對應web 目錄下面的modules 目錄 -->
<init-param>
<param-name>config/modules</param-name>
<param-value>/WEB-INF/struts-modules.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
說明:我們自己寫的action都在modules目錄下,自己模塊的JSP頁面也放到modules下的子目錄中,module的仔細說明見
2、struts-modules.xml:也在web-inf 目錄下,用來配置我們寫的action 以及其對應的forward.這個配置文件還有兩個比較重要的注意點,一個是action的type要轉到spring控制,另一個是用<plugin>將spring框架引入。如下例
<action path="/PushResult"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request" parameter="method" validate="false"
name="generalForm">
<forward name="list" path="/pushResult/List.jsp" />
</action>
<plug-in
className="com.smartdot.galaxy.portal.struts.plugin.GalaxyContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/modules-action-servlet.xml" />
</plug-in>
3、modules-action-servlet.xml 在web-inf 目錄下,主要作用:配置spring中和action相對應的bean.例如:
<bean name="/modules/PushResult"
class="com.smartdot.modules.aqf.action.PushResultAction">
<property name="service">
<ref bean="PushResultService" />
</property>
注:PushResultService bean在另一個文件中配置。
4、與src同一級有一個目錄con,con下有ibatis和spring兩個子目錄,分別存放了ibatis的配置文件與spring的配置文件。
/con/spring/modules/NebulaContext.xml文件:主要配置了SqlMapClientFactoryBean,引入了別的配置文件。例如
<bean id="nebulaSqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource">
<ref bean="datasource" />
</property>
<property name="configLocation">
<value>ibatis/NebulaSqlMapConfig.xml</value>
</property>
</bean>
<import resource="modules/PushResultContext.xml" />
PushResultContext:某一個業務對應的dao和service配置
<bean id="PushResultDao"
class="com.smartdot.modules.aqf.dao.SqlMapPushResultDao">
<property name="sqlMapClient">
<ref bean="nebulaSqlMapClient" />
</property>
</bean>
<bean id="PushResultService"
class="com.smartdot.modules.aqf.service.PushResultService">
<property name="dao">
<ref bean="PushResultDao" />
</property>
</bean>
5、ibatis配置
/conf/ibatis/NebulaSqlMapConfig.xml:配置用到的所有的映射文件
/conf/ibatis/modules/*.xml:各個映射文件的配置。
問題:spring的dao的配置文件是怎么找到的?
1、web.xml(在web-inf目錄下)
重點是struts module 的servlet配置
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<!--struts module -->
<init-param>
<param-name>config/user</param-name>
<param-value>/WEB-INF/struts-usermanager.xml</param-value>
</init-param>
<init-param>
<param-name>config/security</param-name>
<param-value>/WEB-INF/struts-security.xml</param-value>
</init-param>
<init-param>
<param-name>config/resources</param-name>
<param-value>/WEB-INF/struts-resources.xml</param-value>
</init-param>
<init-param>
<param-name>config/nebula</param-name>
<param-value>/WEB-INF/struts-nebula.xml</param-value>
</init-param>
<!-- 對應web 目錄下面的modules 目錄 -->
<init-param>
<param-name>config/modules</param-name>
<param-value>/WEB-INF/struts-modules.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
說明:我們自己寫的action都在modules目錄下,自己模塊的JSP頁面也放到modules下的子目錄中,module的仔細說明見
2、struts-modules.xml:也在web-inf 目錄下,用來配置我們寫的action 以及其對應的forward.這個配置文件還有兩個比較重要的注意點,一個是action的type要轉到spring控制,另一個是用<plugin>將spring框架引入。如下例
<action path="/PushResult"
type="org.springframework.web.struts.DelegatingActionProxy"
scope="request" parameter="method" validate="false"
name="generalForm">
<forward name="list" path="/pushResult/List.jsp" />
</action>
<plug-in
className="com.smartdot.galaxy.portal.struts.plugin.GalaxyContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/modules-action-servlet.xml" />
</plug-in>
3、modules-action-servlet.xml 在web-inf 目錄下,主要作用:配置spring中和action相對應的bean.例如:
<bean name="/modules/PushResult"
class="com.smartdot.modules.aqf.action.PushResultAction">
<property name="service">
<ref bean="PushResultService" />
</property>
注:PushResultService bean在另一個文件中配置。
4、與src同一級有一個目錄con,con下有ibatis和spring兩個子目錄,分別存放了ibatis的配置文件與spring的配置文件。
/con/spring/modules/NebulaContext.xml文件:主要配置了SqlMapClientFactoryBean,引入了別的配置文件。例如
<bean id="nebulaSqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource">
<ref bean="datasource" />
</property>
<property name="configLocation">
<value>ibatis/NebulaSqlMapConfig.xml</value>
</property>
</bean>
<import resource="modules/PushResultContext.xml" />
PushResultContext:某一個業務對應的dao和service配置
<bean id="PushResultDao"
class="com.smartdot.modules.aqf.dao.SqlMapPushResultDao">
<property name="sqlMapClient">
<ref bean="nebulaSqlMapClient" />
</property>
</bean>
<bean id="PushResultService"
class="com.smartdot.modules.aqf.service.PushResultService">
<property name="dao">
<ref bean="PushResultDao" />
</property>
</bean>
5、ibatis配置
/conf/ibatis/NebulaSqlMapConfig.xml:配置用到的所有的映射文件
/conf/ibatis/modules/*.xml:各個映射文件的配置。
問題:spring的dao的配置文件是怎么找到的?
總結
- 上一篇: 内置的struts Action 类--
- 下一篇: Apache Commons Confi