紧接
项目总结SpringMVC+hibernate框架 原理(MVC) applicationContext.xml 文件(3)
这一步讲解项目模块化的配置,项目中每个模块配置一个文件,命名规则为 “模块名-servlet.xml”。
讲述system-servlet.xml文件的配置
项目总结SpringMVC+hibernate框架 web.xml 分析(2)中有这个模块的配置,其余模块都是如此。
下面的配置都已有注释,需要详细看看,才能理解。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 基本的Controller目录 --> <!-- 视图解析器 --> <!-- 只能支持解析可由Servlet API的RequestDispatcher转发的视图资源图,如:内部jsp或者servlet。 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- viewClass指定了选择何种视图技术,这里使用JSTL技术 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <!-- 视图前缀 --> <property name="prefix" value="/jsp/system/"></property> </bean> <!-- 视图请求对应表 --> <bean id="viewMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="defaultHandler"> <!-- UrlFilenameViewController 会将 "/index" 这样的请求映射成名为 "index" 的视图 --> <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" /> </property> <!-- Controller 映射 如请求 : url: 'system/SysUser.do?action=toInsertModel' 请求时会找到id为sysUserController 配置,下面有配置 --> <property name="mappings"> <value> SysUser.do=sysUserController </value> </property> <!-- 拦截器 --> <property name="interceptors"> <list> <ref bean="localeChangeInterceptor" /> <ref bean="denyDuplicateFormSubmitInterceptor" /> </list> </property> </bean> <!-- 每个Module的事务配置,将所有事务放到Service层 --> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <!-- 匹配以Service结尾的实体类 ,我的业务层是以Service结尾的 --> <value>*Service</value> </list> </property> <property name="interceptorNames"> <list> <!-- applicationContext.xml 中有配置事务 --> <value>transactionInterceptor</value> </list> </property> </bean> <!-- 事务配置结束 --> <!-- 设置方法访问参数名 如 : url: 'system/SysUser.do?action=toInsertModel' 中的action --> <bean id="paramResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName" value="action"></property> </bean> <!-- 设置方法访问参数名结束 --> <!-- 系统用户相关配置 --> <bean id="sysUserDAO" class="com.hestia.mosa.system.dao.SysUserDAOImpl"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 当不同的业务层需要调用其它业务层的方法时,可以如下引用 --> <bean id="sysUserService" class="com.hestia.mosa.system.service.SysUserServiceImpl"> <property name="sysUserDAO"> <ref bean="sysUserDAO" /> </property> <!-- 可以如下引用 sysRoleDAO 、sysUserRoleDAO --> <property name="sysRoleDAO"> <ref bean="sysRoleDAO" /> </property> <property name="sysUserRoleDAO"> <ref bean="sysUserRoleDAO" /> </property> </bean> <bean id="sysUserController" class="com.hestia.mosa.system.controller.SysUserController"> <property name="methodNameResolver" ref="paramResolver"></property> <property name="commandName"> <value>command</value> </property> <property name="sysUserService"> <ref bean="sysUserService" /> </property> </bean><!-- 系统用户相关配置 结束 --> <!-- 自动为所有Conrolller创建代理类Begin --> <bean id="controllerInterceptor" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <!-- 权限管理拦截器 applicationContext.xml中定义 --> <property name="interceptorNames"> <list> <value>rightInterceptor</value> </list> </property> <property name="beanNames"> <list> <value>*Controller</value> </list> </property> </bean><!-- 自动为所有Conrolller创建代理类End --> </beans>