Spring+SpringMVC+Mybatis整合

Spring4.1.6+SpringMVC+Mybatis3.3.0整合 MySQL5.*+文件上传

1.所需jar与解释

Spring+SpringMVC:
        spring-aop-4.1.6.RELEASE.jar
        spring-aspects-4.1.6.RELEASE.jar
        spring-beans-4.1.6.RELEASE.jar
        spring-context-4.1.6.RELEASE.jar
        spring-core-4.1.6.RELEASE.jar
        spring-expression-4.1.6.RELEASE.jar
        spring-jdbc-4.1.6.RELEASE.jar
        spring-orm-4.1.6.RELEASE.jar
        spring-tx-4.1.6.RELEASE.jar
        spring-web-4.1.6.RELEASE.jar
        spring-webmvc-4.1.6.RELEASE.jar
        
        AOP:在Spring2.*中
            aopalliance.jar
            aspectjweaver.jar

        文件上传:在Struts2中
            commons-fileupload-1.2.1.jar
            commons-io-1.3.2.jar

    Mybatis:
        mybatis-3.3.0.jar
        asm-4.2.jar
        cglib-3.1.jar
        commons-logging-1.2.jar
        log4j-1.2.17.jar
        log4j-api-2.2.jar
        log4j-core-2.2.jar
        slf4j-api-1.7.12.jar
        slf4j-log4j12-1.7.12.jar

    Mybatis与Spring整合:
        mybatis-spring-1.2.3.jar

    MySQL驱动包:
        mysql-connector-java-5.1.7-bin.jar

  如果使用maven: jar包的dependency搜索

  1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3     <modelVersion>4.0.0</modelVersion>
  4     <groupId>com.zhengbin.demo</groupId>
  5     <artifactId>zzti.wd.mall</artifactId>
  6     <packaging>war</packaging>
  7     <version>0.0.1-SNAPSHOT</version>
  8     <name>zzti.wd.mall Maven Webapp</name>
  9     <url>http://maven.apache.org</url>
 10     <properties>
 11         <!-- spring版本号 -->
 12         <spring.version>4.1.6.RELEASE</spring.version>
 13         <!-- mybatis版本号 -->
 14         <mybatis.version>3.3.0</mybatis.version>
 15         <!-- log4j日志文件管理包版本 -->
 16         <slf4j.version>1.7.7</slf4j.version>
 17         <log4j.version>1.2.17</log4j.version>
 18     </properties>
 19 
 20     <dependencies>
 21         <dependency>
 22             <groupId>junit</groupId>
 23             <artifactId>junit</artifactId>
 24             <version>4.11</version>
 25             <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
 26             <scope>test</scope>
 27         </dependency>
 28         <!-- spring核心包 -->
 29         <dependency>
 30             <groupId>org.springframework</groupId>
 31             <artifactId>spring-core</artifactId>
 32             <version>${spring.version}</version>
 33         </dependency>
 34         <dependency>
 35             <groupId>org.springframework</groupId>
 36             <artifactId>spring-web</artifactId>
 37             <version>${spring.version}</version>
 38         </dependency>
 39         <dependency>
 40             <groupId>org.springframework</groupId>
 41             <artifactId>spring-oxm</artifactId>
 42             <version>${spring.version}</version>
 43         </dependency>
 44         <dependency>
 45             <groupId>org.springframework</groupId>
 46             <artifactId>spring-tx</artifactId>
 47             <version>${spring.version}</version>
 48         </dependency>
 49         <dependency>
 50             <groupId>org.springframework</groupId>
 51             <artifactId>spring-jdbc</artifactId>
 52             <version>${spring.version}</version>
 53         </dependency>
 54         <dependency>
 55             <groupId>org.springframework</groupId>
 56             <artifactId>spring-webmvc</artifactId>
 57             <version>${spring.version}</version>
 58         </dependency>
 59         <dependency>
 60             <groupId>org.springframework</groupId>
 61             <artifactId>spring-aop</artifactId>
 62             <version>${spring.version}</version>
 63         </dependency>
 64         <dependency>
 65             <groupId>org.springframework</groupId>
 66             <artifactId>spring-context-support</artifactId>
 67             <version>${spring.version}</version>
 68         </dependency>
 69         <dependency>
 70             <groupId>org.springframework</groupId>
 71             <artifactId>spring-test</artifactId>
 72             <version>${spring.version}</version>
 73         </dependency>
 74         <!-- mybatis核心包 -->
 75         <dependency>
 76             <groupId>org.mybatis</groupId>
 77             <artifactId>mybatis</artifactId>
 78             <version>${mybatis.version}</version>
 79         </dependency>
 80         <!-- mybatis/spring包 -->
 81         <dependency>
 82             <groupId>org.mybatis</groupId>
 83             <artifactId>mybatis-spring</artifactId>
 84             <version>1.2.2</version>
 85         </dependency>
 86         <!-- 导入java ee jar 包 -->
 87         <dependency>
 88             <groupId>javax</groupId>
 89             <artifactId>javaee-api</artifactId>
 90             <version>7.0</version>
 91         </dependency>
 92         <!-- 导入Mysql数据库链接jar包 -->
 93         <dependency>
 94             <groupId>mysql</groupId>
 95             <artifactId>mysql-connector-java</artifactId>
 96             <version>5.1.30</version>
 97         </dependency>
 98         <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
 99         <dependency>
100             <groupId>commons-dbcp</groupId>
101             <artifactId>commons-dbcp</artifactId>
102             <version>1.2.2</version>
103         </dependency>
104         <!-- JSTL标签类 -->
105         <dependency>
106             <groupId>jstl</groupId>
107             <artifactId>jstl</artifactId>
108             <version>1.2</version>
109         </dependency>
110         <!-- 日志文件管理包 -->
111         <!-- log start -->
112         <dependency>
113             <groupId>log4j</groupId>
114             <artifactId>log4j</artifactId>
115             <version>${log4j.version}</version>
116         </dependency>
117         <!-- 格式化对象,方便输出日志 -->
118         <dependency>
119             <groupId>com.alibaba</groupId>
120             <artifactId>fastjson</artifactId>
121             <version>1.1.41</version>
122         </dependency>
123         <dependency>
124             <groupId>org.slf4j</groupId>
125             <artifactId>slf4j-api</artifactId>
126             <version>${slf4j.version}</version>
127         </dependency>
128         <dependency>
129             <groupId>org.slf4j</groupId>
130             <artifactId>slf4j-log4j12</artifactId>
131             <version>${slf4j.version}</version>
132         </dependency>
133         <!-- log end -->
134         <!-- 映入JSON -->
135         <dependency>
136             <groupId>org.codehaus.jackson</groupId>
137             <artifactId>jackson-mapper-asl</artifactId>
138             <version>1.9.13</version>
139         </dependency>
140         <!-- 上传组件包 -->
141         <dependency>
142             <groupId>commons-fileupload</groupId>
143             <artifactId>commons-fileupload</artifactId>
144             <version>1.3.1</version>
145         </dependency>
146         <dependency>
147             <groupId>commons-io</groupId>
148             <artifactId>commons-io</artifactId>
149             <version>2.4</version>
150         </dependency>
151         <dependency>
152             <groupId>commons-codec</groupId>
153             <artifactId>commons-codec</artifactId>
154             <version>1.9</version>
155         </dependency>
156         <!-- Spring配置事物管理-->
157         <dependency>
158             <groupId>org.aspectj</groupId>
159             <artifactId>aspectjweaver</artifactId>
160             <version>1.7.2</version>
161         </dependency>
162     </dependencies>
163     <build>
164         <finalName>zzti.wd.mall</finalName>
165     </build>
166 </project>
pom.xml

2.编写配置文件

  (1)web.xml ——Web容器

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6     <display-name>07spring+springmvc+mybatis</display-name>
 7 
 8     <!-- spring 配置 begin -->
 9     <context-param>
10         <param-name>contextConfigLocation</param-name>
11         <param-value>classpath:applicationContext.xml</param-value>
12     </context-param>
13     <listener>
14         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
15     </listener>
16     <!-- spring 配置 end -->
17 
18     <!-- 编码过滤器 begin -->
19     <filter>
20         <filter-name>encodingFilter</filter-name>
21         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
22         <async-supported>true</async-supported>
23         <init-param>
24             <param-name>encoding</param-name>
25             <param-value>UTF-8</param-value>
26         </init-param>
27     </filter>
28     <filter-mapping>
29         <filter-name>encodingFilter</filter-name>
30         <url-pattern>/*</url-pattern>
31     </filter-mapping>
32     <!-- 编码过滤器 end -->
33 
34     <!-- spring mvc 配置 begin -->
35     <servlet>
36         <servlet-name>springmvc</servlet-name>
37         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
38         <init-param>
39             <param-name>contextConfigLocation</param-name>
40             <param-value>classpath:mvc.xml</param-value>
41         </init-param>
42         <load-on-startup>1</load-on-startup>
43     </servlet>
44     <servlet-mapping>
45         <servlet-name>springmvc</servlet-name>
46         <url-pattern>*.do</url-pattern>
47     </servlet-mapping>
48     <!-- spring mvc 配置 end -->
49 
50 </web-app>
web.xml

  (2)mvc.xml ——SpringMVC

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:p="http://www.springframework.org/schema/p"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xmlns:mvc="http://www.springframework.org/schema/mvc"
 7     xsi:schemaLocation="
 8         http://www.springframework.org/schema/beans
 9         http://www.springframework.org/schema/beans/spring-beans.xsd
10         http://www.springframework.org/schema/context
11         http://www.springframework.org/schema/context/spring-context.xsd 
12         http://www.springframework.org/schema/mvc
13         http://www.springframework.org/schema/mvc/spring-mvc.xsd ">
14 
15     <!-- 配置文件上传 begin -->
16     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
17         <property name="defaultEncoding" value="utf-8"/>
18         <property name="maxUploadSize" value="10485760000"/>
19         <property name="maxInMemorySize" value="40960"/>
20     </bean>
21     <!-- 配置文件上传 end -->
22     
23     <!-- 扫描该包中的所有注解 -->
24     <context:component-scan base-package="com.wd.controller"/>
25 </beans>
mvc.xml

  (3)applicationContext.xml ——Spring

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:p="http://www.springframework.org/schema/p"
 5     xmlns:context="http://www.springframework.org/schema/context"
 6     xmlns:aop="http://www.springframework.org/schema/aop"
 7     xmlns:tx="http://www.springframework.org/schema/tx"
 8     
 9     xsi:schemaLocation="
10         http://www.springframework.org/schema/beans
11         http://www.springframework.org/schema/beans/spring-beans.xsd
12         http://www.springframework.org/schema/context
13         http://www.springframework.org/schema/context/spring-context.xsd 
14         http://www.springframework.org/schema/aop
15         http://www.springframework.org/schema/aop/spring-aop.xsd
16         http://www.springframework.org/schema/tx
17         http://www.springframework.org/schema/tx/spring-tx.xsd ">
18     <!-- 配置datasource begin -->
19     <!-- 读取数据库配置文件 -->
20     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
21         <property name="location" value="classpath:db.properties"/>
22     </bean>
23     <!-- 用Spring自带的jdbc -->
24     <!--
25     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
26         <property name="driverClassName" value="${driver}"/>
27         <property name="url" value="${url}"/>
28         <property name="username" value="${username}"/>
29         <property name="password" value="${password}"/>
30     </bean> 
31     -->
32     <!-- 使用dbcp连接池 -->
33     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
34         destroy-method="close">
35         <property name="driverClassName" value="${driver}" />
36         <property name="url" value="${url}" />
37         <property name="username" value="${username}" />
38         <property name="password" value="${password}" />
39         <!-- 初始化连接大小 -->
40         <property name="initialSize" value="${initialSize}"></property>
41         <!-- 连接池最大数量 -->
42         <property name="maxActive" value="${maxActive}"></property>
43         <!-- 连接池最大空闲 -->
44         <property name="maxIdle" value="${maxIdle}"></property>
45         <!-- 连接池最小空闲 -->
46         <property name="minIdle" value="${minIdle}"></property>
47         <!-- 获取连接最大等待时间 -->
48         <property name="maxWait" value="${maxWait}"></property>
49     </bean>
50     <!-- 配置datasource end -->
51 
52     <!-- 配置SqlSessionFactory begin -->
53     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
54         <property name="dataSource" ref="dataSource"/>
55         <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
56     </bean>
57     <!-- 配置SqlSessionFactory end -->
58     
59     <!-- 配置事物 声明式事物 begin -->
60     <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
61         <property name="dataSource" ref="dataSource"/>
62     </bean>
63     <tx:advice id="txAdvice" transaction-manager="txManager">
64         <!-- 配置哪些方法使用什么样的事物,配置事物的传播特性 -->
65         <!-- REQUIRED表示如果不存在事物则必须产生一个事物 -->
66         <tx:attributes>
67             <tx:method name="add*" propagation="REQUIRED"/>
68             <tx:method name="delete*" propagation="REQUIRED"/>
69             <tx:method name="update*" propagation="REQUIRED"/>
70             <tx:method name="*" read-only="true"/>
71         </tx:attributes>
72     </tx:advice>
73     <aop:config>
74         <aop:pointcut id="pointcut" expression="execution(* com.wd.service.*.*(..))" />
75         <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut" />
76     </aop:config>
77     <!-- 配置事物 声明式事物 end -->
78     
79     <!-- 配置注解 begin -->
80     <context:component-scan base-package="com.wd"/>    
81     <!-- 配置注解 end -->
82 </beans>
applicationContext.xml

  (4)mybatis.cfg.xml ——Mybatis

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 3     "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <typeAliases>
 6         <package name="com.wd.entity"/>
 7     </typeAliases>
 8     <mappers>
 9         <!-- 所有mapper文件填写位置 -->
10         <mapper resource="com/wd/entity/book.mapper.xml"/>
11         <mapper resource="com/wd/entity/computer.mapper.xml"/>
12     </mappers>
13 </configuration>
mybatis.cfg.xml

  (5)db.properties ——数据源

 1 driver=com.mysql.jdbc.Driver
 2 url=jdbc:mysql://localhost:3307/wdmall
 3 username=root
 4 password=950906
 5 #定义初始连接数
 6 initialSize=3
 7 #定义最大连接数  
 8 maxActive=20
 9 #定义最大空闲  
10 maxIdle=20
11 #定义最小空闲  
12 minIdle=3
13 #定义最长等待时间  
14 maxWait=6000
db.properties
原文地址:https://www.cnblogs.com/zhengbin/p/5285969.html