spring MVC集成Mybatis3


1、所需Jar包

说明:其中有些Jar是项目中必须的未作裁减;

2、Web.xml的内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	
	<filter-mapping>  
		<filter-name>characterEncodingFilter</filter-name>  
		<url-pattern>/*</url-pattern>  
	</filter-mapping>  

	<servlet>
		<servlet-name>spring</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
	<!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/classes/resources/spring/spring-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>spring</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/classes/resources/spring/springs-*.xml
		</param-value>
	</context-param>

	<!-- 配置上下文监听 -->
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>    
         <listener>   
	         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>   
         </listener>
</web-app>
3、Web.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<context:annotation-config />
	<!-- 把标记了@Controller注解的类转换为bean -->
	<context:component-scan base-package="cn.***.controller" />
	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
	<mvc:annotation-driven />
	
	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView"/>

	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8" scope="prototype">
		<!-- 最大5m 1024 * 1024 * 5 * 6 -->
		<property name="maxUploadSize" value="31457280"/>
		<property name="maxInMemorySize" value="4096"/>
                  <property name="resolveLazily" value="true"/>   
	</bean>
</beans>

4、Spring与Mybatis配置

<?xml version="1.0" encoding="UTF-8"?>  
<beans default-autowire="byType" xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    	http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">    
    <bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations">  
            <list>  
                <value>classpath:resources/prop/spring-jdbc.properties</value>  
            </list>  
        </property>  
    </bean>
     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}"></property>
		<property name="url" value="${jdbc.url}"></property> 
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="initialSize" value="${jdbc.initialSize}" />
		<property name="maxActive" value="${jdbc.maxActive}" />
		<property name="maxWait" value="${jdbc.maxWait}" />
		<property name="poolPreparedStatements" value="true" />
		<property name="testWhileIdle" value="true"/>
		<property name="validationQuery" value="select 1 from dual"/>
	</bean>
     
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="configLocation" value="classpath:resources/mybatis/SqlMapConfig.xml"></property>  
        <property name="dataSource" ref="dataSource"></property>  
    </bean>
    
    <!-- 由spring管理mybatis的事物 -->  
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource"></property>  
    </bean>  
    <!-- 定义拦截器,用来指定事物属性,级别,和异常处理 -->  
    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">  
        <property name="transactionManager" ref="transactionManager"></property>  
        <property name="transactionAttributes">  
            <props>  
                <!-- 
                PROPAGATION_SUPPORTS: 如果已经存在事务,则加入事务;如果没有事务,则以非事务的方式执行;   
                PROPAGATION_MANDATORY: 使用当前事务, 如果没有, 则抛出异常;   
                PROPAGATION_REQUIRED: 新建事务,如果当前有事务, 则挂起; 
                PROPAGATION_NOT_SUPPORTED:以非事务的方式执行, 如果当前有事务, 则挂起;   
                PROPAGATION_NEVER:以非事务的方式执行, 如果当前有事务,则抛出异常;   
                +/-Exception</prop> + 表示异常出现时事物提交 - 表示异常出现时事务回滚 -->  
                <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>
                <prop key="select*">PROPAGATION_SUPPORTS,readOnly</prop> 
                <prop key="del*"> PROPAGATION_REQUIRED,-BusinessException</prop>  
                <prop key="delete*"> PROPAGATION_REQUIRED,-BusinessException</prop>  
                <prop key="update*">PROPAGATION_REQUIRED,-BusinessException</prop>  
                <prop key="save*">PROPAGATION_REQUIRED,-BusinessException</prop>  
                <prop key="add*">PROPAGATION_REQUIRED,-BusinessException</prop>  
            </props>  
        </property>  
    </bean>  
    <!-- 用来定义那些类需要采用事物管理 spring 事物的动态代理类 BeanNameAutoProxyCreator 根据类名自动代理,接受表达式 -->  
    <bean id="BeanProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
        <property name="beanNames">  
            <!-- 对类名以Service结尾的类进行代理 -->  
            <value>*Service*</value>  
        </property>  
        <!-- 对代理类进行加载拦截器(实现通知的过程) -->  
        <property name="interceptorNames">  
            <list>  
                <value>transactionInterceptor</value>  
            </list>  
        </property>  
    </bean> 
</beans>

5、Mybatis配置文件SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration  
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"  
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
	<!-- 要在environment之前 -->
	<typeAliases>
		<typeAlias type="cn.com.***.module.CustomerVO" alias="customer"/>	</typeAliases>
	<mappers>
		<mapper resource="resources/mybatis/mappers-**.xml"/>
	</mappers>
</configuration>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值