单位的框架:struts+ibatis+spring
1、web.xml(在web-inf目录下)
重点是struts module 的servlet配置
说明:我们自己写的action都在modules目录下,自己模块的JSP页面也放到modules下的子目录中,module的仔细说明见
2、struts-modules.xml:也在web-inf 目录下,用来配置我们写的action 以及其对应的forward.这个配置文件还有两个比较重要的注意点,一个是action的type要转到spring控制,另一个是用<plugin>将spring框架引入。如下例
3、modules-action-servlet.xml 在web-inf 目录下,主要作用:配置spring中和action相对应的bean.例如:
注:PushResultService bean在另一个文件中配置。
4、与src同一级有一个目录con,con下有ibatis和spring两个子目录,分别存放了ibatis的配置文件与spring的配置文件。
/con/spring/modules/NebulaContext.xml文件:主要配置了SqlMapClientFactoryBean,引入了别的配置文件。例如
PushResultContext:某一个业务对应的dao和service配置
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的配置文件是怎么找到的?