JAVA springmvc+spring+mybatis整合

一、springmvc---controller  spring----service  mybatiss---dao

pring(包括springmvc)、mybatis、mybatis-spring整合包、数据库驱动、第三方连接池。

因为springmvc和spring属于同一个公司不需要整合包,而mybaits和spring需要整合包。

二、jar包列表

pom文件依赖:

  1  <dependencies>
  2     <dependency>
  3       <groupId>org.hamcrest</groupId>
  4       <artifactId>hamcrest-library</artifactId>
  5       <version>1.3</version>
  6     </dependency>
  7     <dependency>
  8       <groupId>org.springframework</groupId>
  9       <artifactId>spring-webmvc</artifactId>
 10       <version>4.3.12.RELEASE</version>
 11     </dependency>
 12     <dependency>
 13       <groupId>org.slf4j</groupId>
 14       <artifactId>slf4j-log4j12</artifactId>
 15       <version>1.7.5</version>
 16     </dependency>
 17     <dependency>
 18       <groupId>org.slf4j</groupId>
 19       <artifactId>slf4j-api</artifactId>
 20       <version>1.7.5</version>
 21     </dependency>
 22     <dependency>
 23       <groupId>org.apache.logging.log4j</groupId>
 24       <artifactId>log4j-core</artifactId>
 25       <version>2.0.2</version>
 26     </dependency>
 27     <dependency>
 28       <groupId>org.apache.logging.log4j</groupId>
 29       <artifactId>log4j-api</artifactId>
 30       <version>2.0.2</version>
 31     </dependency>
 32     <dependency>
 33       <groupId>spring-jms</groupId>
 34       <artifactId>spring-jms</artifactId>
 35       <version>4.2.4</version>
 36     </dependency>
 37     <dependency>
 38       <groupId>org.springframework</groupId>
 39       <artifactId>spring-web</artifactId>
 40       <version>4.3.12.RELEASE</version>
 41     </dependency>
 42     <dependency>
 43       <groupId>mysql</groupId>
 44       <artifactId>mysql-connector-java</artifactId>
 45       <version>5.1.34</version>
 46     </dependency>
 47     <dependency>
 48       <groupId>taglibs-standard</groupId>
 49       <artifactId>taglibs-standard</artifactId>
 50       <version>1.2.5</version>
 51     </dependency>
 52     <dependency>
 53       <groupId>taglibs-standard-spec</groupId>
 54       <artifactId>taglibs-standard-spec</artifactId>
 55       <version>1.2.5</version>
 56     </dependency>
 57     <dependency>
 58       <groupId>org.springframework</groupId>
 59       <artifactId>spring-oxm</artifactId>
 60       <version>4.1.5.RELEASE</version>
 61     </dependency>
 62     <dependency>
 63       <groupId>org.springframework</groupId>
 64       <artifactId>spring-test</artifactId>
 65       <version>4.3.12.RELEASE</version>
 66     </dependency>
 67 
 68     <dependency>
 69       <groupId>org.springframework</groupId>
 70       <artifactId>spring-expression</artifactId>
 71       <version>4.3.12.RELEASE</version>
 72     </dependency>
 73     <dependency>
 74       <groupId>org.springframework</groupId>
 75       <artifactId>spring-core</artifactId>
 76       <version>4.3.12.RELEASE</version>
 77     </dependency>
 78     <dependency>
 79       <groupId>org.springframework</groupId>
 80       <artifactId>spring-beans</artifactId>
 81       <version>4.3.12.RELEASE</version>
 82     </dependency>
 83     <dependency>
 84       <groupId>org.springframework</groupId>
 85       <artifactId>spring-context</artifactId>
 86       <version>4.3.12.RELEASE</version>
 87     </dependency>
 88     <dependency>
 89       <groupId>org.springframework</groupId>
 90       <artifactId>spring-context-support</artifactId>
 91       <version>4.3.12.RELEASE</version>
 92     </dependency>
 93     <dependency>
 94       <groupId>org.springframework</groupId>
 95       <artifactId>spring-aop</artifactId>
 96       <version>4.3.12.RELEASE</version>
 97     </dependency>
 98     <dependency>
 99       <groupId>aopalliance</groupId>
100       <artifactId>aopalliance</artifactId>
101       <version>1.0</version>
102     </dependency>
103     <dependency>
104       <groupId>spring-aspects</groupId>
105       <artifactId>spring-aspects</artifactId>
106       <version>4.2.4</version>
107     </dependency>
108     <dependency>
109       <groupId>com.springsource.org</groupId>
110       <artifactId>aspectj.weaver</artifactId>
111       <version>1.6.8</version>
112     </dependency>
113 
114     <dependency>
115       <groupId>org.apache.commons</groupId>
116       <artifactId>commons-pool2</artifactId>
117       <version>2.4.1</version>
118     </dependency>
119 
120     <dependency>
121       <groupId>org.apache.commons</groupId>
122       <artifactId>commons-dbcp2</artifactId>
123       <version>2.0.1</version>
124     </dependency>
125     <dependency>
126       <groupId>org.springframework</groupId>
127       <artifactId>spring-jdbc</artifactId>
128       <version>4.1.5.RELEASE</version>
129     </dependency>
130     <dependency>
131       <groupId>log4j</groupId>
132       <artifactId>log4j</artifactId>
133       <version>1.2.17</version>
134     </dependency>
135     <dependency>
136       <groupId>org.javassist</groupId>
137       <artifactId>javassist</artifactId>
138       <version>3.16.1-GA</version>
139     </dependency>
140     <dependency>
141       <groupId>org.mybatis</groupId>
142       <artifactId>mybatis-spring</artifactId>
143       <version>1.2.2</version>
144     </dependency>
145     <dependency>
146       <groupId>org.springframework</groupId>
147       <artifactId>spring-tx</artifactId>
148       <version>4.1.5.RELEASE</version>
149     </dependency>
150     <dependency>
151       <groupId>commons-logging</groupId>
152       <artifactId>commons-logging</artifactId>
153       <version>1.1.1</version>
154     </dependency>
155     <dependency>
156       <groupId>cglib</groupId>
157       <artifactId>cglib</artifactId>
158       <version>2.2.2</version>
159     </dependency>
160     <dependency>
161       <groupId>asm</groupId>
162       <artifactId>asm</artifactId>
163       <version>3.3.1</version>
164     </dependency>
165     <dependency>
166       <groupId>org.mybatis</groupId>
167       <artifactId>mybatis</artifactId>
168       <version>3.2.7</version>
169     </dependency>
170     <dependency>
171       <groupId>junit</groupId>
172       <artifactId>junit</artifactId>
173       <version>4.11</version>
174       <scope>test</scope>
175     </dependency>
176     <dependency>
177       <groupId>org.junit.jupiter</groupId>
178       <artifactId>junit-jupiter-api</artifactId>
179       <version>RELEASE</version>
180     </dependency>
181     <dependency>
182       <groupId>org.springframework</groupId>
183       <artifactId>spring-test</artifactId>
184       <version>4.3.12.RELEASE</version>
185     </dependency>

三、配置文件

1、SqlMapConfig.xml: mybaits配置文件,只保存约束和configuration标签即可,其中的mapper映射在applicationContex-dao.xml里进行添加。

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 
6 
7 <configuration>
8 </configuration>

 2、applicationContext-dao.xml:dao层配置文件 (注解扫描在其他文件配置即可)

1)数据库连接池

2)会话工厂

3)配置mapper扫描

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3         xmlns:context="http://www.springframework.org/schema/context"
 4         xmlns:p="http://www.springframework.org/schema/p"
 5         xmlns:aop="http://www.springframework.org/schema/aop"
 6         xmlns:tx="http://www.springframework.org/schema/tx"
 7         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 8         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 9         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
10         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
11         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
12 
13     <!-- 加载配置文件 -->
14     <context:property-placeholder location="classpath:db.properties"/>
15     <!-- 数据库连接池 -->
16     <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
17     <property name="driverClassName" value="${jdbc.driver}"/>
18     <property name="url" value="${jdbc.url}"/>
19     <property name="username" value="${jdbc.username}"/>
20     <property name="password" value="${jdbc.password}"/>
21     <property name="maxTotal" value="10"/>
22     <property name="maxIdle" value="5"/>
23     </bean>
24         <!-- mapper配置 -->
25         <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
26     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
27         <!-- 数据库连接池 -->
28         <property name="dataSource" ref="dataSource"/>
29         <!-- 加载mybatis的全局配置文件 -->
30         <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
31         </bean>
32         <!-- 配置Mapper扫描器 -->
33         <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
34             <property name="basePackage" value="jd.com.dao"/>
35         </bean>
36         </beans>

3、service层

1)applicationContext-service.xml 包扫描器和Service层的注解开启。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3         xmlns:context="http://www.springframework.org/schema/context"
 4         xmlns:p="http://www.springframework.org/schema/p"
 5         xmlns:aop="http://www.springframework.org/schema/aop"
 6         xmlns:tx="http://www.springframework.org/schema/tx"
 7         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 8         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 9         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
10         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
11         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
12         <!--开启注解扫描-->
13         <context:component-scan base-package="jd.com" />
14 
15 </beans>

2)applicationContext-trans.xml事务配置文件。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3         xmlns:context="http://www.springframework.org/schema/context"
 4         xmlns:p="http://www.springframework.org/schema/p"
 5         xmlns:aop="http://www.springframework.org/schema/aop"
 6         xmlns:tx="http://www.springframework.org/schema/tx"
 7         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 8         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 9         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
10         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
11         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
12 
13     <!-- 事务管理器 -->
14         <bean id="transactionManager"
15             class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
16             <!-- 数据源 -->
17         <property name="dataSource" ref="dataSource"/>
18         </bean>
19                 <!-- 通知 -->
20         <tx:advice  id="txAdvice" transaction-manager="transactionManager">
21         <tx:attributes>
22         <!-- 传播行为 -->
23         <tx:method name="save*" propagation="REQUIRED"/>
24         <tx:method name="insert*" propagation="REQUIRED"/>
25         <tx:method name="delete*" propagation="REQUIRED"/>
26         <tx:method name="update*" propagation="REQUIRED"/>
27         <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
28         <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
29         </tx:attributes>
30                 </tx:advice>
31                 <!-- 切面 -->
32         <aop:config>
33         <aop:advisor advice-ref="txAdvice"
34         pointcut="execution(* jd.com.service.*.*(..))"/>
35         </aop:config>
36 
37         </beans>

4、Springmvc.xml

1)注解扫描器开启

2)注解驱动(处理器映射器和处理器适配器)

3)视图解析器配置

 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="http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
11         http://www.springframework.org/schema/context
12         http://www.springframework.org/schema/context/spring-context-4.0.xsd">
13         <!--开启注解扫描-->
14         <context:component-scan base-package="jd.com.contronller"/>
15         <!--开启注解驱动-->
16         <mvc:annotation-driven/>
17         <!--视图解析器配置-->
18         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"  >
19             <property name="prefix" value="WEB-INF/jsp/"/>
20             <property name="suffix" value=".jsp" />
21             <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
22         </bean>
23 
24 
25 </beans>

注意上面配置的视图解析器有问题。前缀必须要/否则在配置窄化请求映射的时候会报如下错误:

正确配置:

 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="http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
11         http://www.springframework.org/schema/context
12         http://www.springframework.org/schema/context/spring-context-4.0.xsd">
13         <!--开启注解扫描-->
14         <context:component-scan base-package="jd.com.contronller"/>
15         <!--开启注解驱动-->
16         <mvc:annotation-driven conversion-service="conversionService"  />
17         <!--视图解析器配置-->
18         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"  >
19             <property name="prefix" value="/WEB-INF/jsp/"/>
20             <property name="suffix" value=".jsp" />
21             <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
22         </bean>
23         <mvc:resources mapping="/resource/**" location="/resources/"/>
24 
25         <!--自定义转换器 注意在注解驱动里指明引用-->
26     <bean id="conversionService"
27     class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
28     <property name="converters">
29     <set>
30         <bean class="jd.com.contronller.jd.com.convert.CustomStringToDate"/>
31     </set>
32         </property>
33         </bean>
34 
35         </beans>

5、web.xml 前端控制器配置。

 1 <!DOCTYPE web-app PUBLIC
 2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
 4 
 5 <web-app>
 6 
 7 
 8   <!-- 加载spring容器 -->
 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   <servlet>
17     <servlet-name>springmvc</servlet-name>
18     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
19     <init-param>
20       <param-name>contextConfigLocation</param-name>
21       <!--使用通配符加载所有的配置文件-->
22       <param-value>classpath:springmvc.xml</param-value>
23     </init-param>
24     <load-on-startup>1</load-on-startup>
25   </servlet>
26   <servlet-mapping>
27     <servlet-name>springmvc</servlet-name>
28     <url-pattern>*.action</url-pattern>
29   </servlet-mapping>
30 </web-app>

建表和插入数据

1         CREATE TABLE goods(
2             id INT  AUTO_INCREMENT,
3             goodsname VARCHAR(20),
4             money DOUBLE,
5             detail VARCHAR(100),
6             PRIMARY KEY(id)
7         );

mapper文件:

接口:

1 package jd.com.dao;
2 
3 import java.util.List;
4 import jd.com.projo.goods;
5 
6 public interface goodsMapperImpl {
7     List<goods>  findGoodsById();
8 }
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!--和主配置文件约束是不一样的-->
 6 
 7 <mapper namespace="jd.com.dao.goodsMapperImpl">
 8     <select id="findGoodsById" resultType="jd.com.projo.goods"  >
 9         select * from goods
10     </select>
11 </mapper>

 

posted @ 2018-04-30 17:36  evil_liu  阅读(293)  评论(0编辑  收藏  举报