项目总结SpringMVC+hibernate框架 web.xml 分析(2)

紧接

项目总结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>



posted on 2013-08-16 18:45  you Richer  阅读(251)  评论(0编辑  收藏  举报