zoukankan      html  css  js  c++  java
  • 项目总结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>
    
    



  • 相关阅读:
    MongoDB环境配置
    Python之路【第二十七篇】:反射
    Socket网络通讯,TCP三次握手和四次释放,与UDP的差别
    iOS 常用第三方
    UISegmentedControl的使用
    OC取应用程序目录的路径
    KVC中setValuesForKeysWithDictionary
    KVC和KVO的简单对比
    C语言 内存和地址
    html基础知识
  • 原文地址:https://www.cnblogs.com/riskyer/p/3262920.html
Copyright © 2011-2022 走看看