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>
    
    



  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/riskyer/p/3262920.html
Copyright © 2011-2022 走看看