maven+springMVC+mybatis+junit详细搭建过程 maven+springMVC+mybatis+junit详细搭建过程

maven+springMVC+mybatis+junit详细搭建过程

springMVC+mybatis框架搭建

首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些?

(假设效果:项目目录结构清晰,能够查询到本地数据库中的内容。。)

1.  工程目录结构整理清楚

在src/main/java文件夹中,新建包cn.springmvc.model(存放javabean),

                                            cn.springmvc.dao(存放spring与mybatis连接接口),

                                            cn.springmvc.service(service接口),

                                            cn.springmvc.service.impl(service接口的实现),

                                            cn.springmvc.controller(存放控制层controller)

在src/main/resource文件夹中,新建包conf(存放配置文件),

                                                   mapper(mybatis的mapper文件)

在src/test/java文件夹中,新建包cn.springmvc.test(存放测试文件)

在WEB-INF文件夹下新建jsp文件夹(存放jsp文件)

这样项目结构基本完成了

2.  引入依赖包

打开maven的pom文件,对本次开发所需使用的架包依次导入(maven项目管理的优势)

查找依赖结构有个不错的网站,http://search.maven.org/   只要输入包名即可查找引来关系

pom.xml(包依赖)


  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>eyas.springmvc</groupId>  
  5.     <artifactId>springmvc</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <name>springmvc Maven Webapp</name>  
  9.     <url>http://maven.apache.org</url>  
  10.     <properties>  
  11.         <!-- spring版本号 -->  
  12.         <spring.version>3.2.4.RELEASE</spring.version>  
  13.         <!-- mybatis版本号 -->  
  14.         <mybatis.version>3.2.4</mybatis.version>  
  15.         <!-- log4j日志文件管理包版本 -->  
  16.         <slf4j.version>1.6.6</slf4j.version>  
  17.         <log4j.version>1.2.9</log4j.version>  
  18.     </properties>  
  19.     <dependencies>  
  20.         <!-- spring核心包 -->  
  21.         <!-- springframe start -->  
  22.         <dependency>  
  23.             <groupId>org.springframework</groupId>  
  24.             <artifactId>spring-core</artifactId>  
  25.             <version>${spring.version}</version>  
  26.         </dependency>  
  27.   
  28.         <dependency>  
  29.             <groupId>org.springframework</groupId>  
  30.             <artifactId>spring-web</artifactId>  
  31.             <version>${spring.version}</version>  
  32.         </dependency>  
  33.   
  34.         <dependency>  
  35.             <groupId>org.springframework</groupId>  
  36.             <artifactId>spring-oxm</artifactId>  
  37.             <version>${spring.version}</version>  
  38.         </dependency>  
  39.   
  40.         <dependency>  
  41.             <groupId>org.springframework</groupId>  
  42.             <artifactId>spring-tx</artifactId>  
  43.             <version>${spring.version}</version>  
  44.         </dependency>  
  45.   
  46.         <dependency>  
  47.             <groupId>org.springframework</groupId>  
  48.             <artifactId>spring-jdbc</artifactId>  
  49.             <version>${spring.version}</version>  
  50.         </dependency>  
  51.   
  52.         <dependency>  
  53.             <groupId>org.springframework</groupId>  
  54.             <artifactId>spring-webmvc</artifactId>  
  55.             <version>${spring.version}</version>  
  56.         </dependency>  
  57.   
  58.         <dependency>  
  59.             <groupId>org.springframework</groupId>  
  60.             <artifactId>spring-aop</artifactId>  
  61.             <version>${spring.version}</version>  
  62.         </dependency>  
  63.   
  64.         <dependency>  
  65.             <groupId>org.springframework</groupId>  
  66.             <artifactId>spring-context-support</artifactId>  
  67.             <version>${spring.version}</version>  
  68.         </dependency>  
  69.   
  70.         <dependency>  
  71.             <groupId>org.springframework</groupId>  
  72.             <artifactId>spring-aop</artifactId>  
  73.             <version>${spring.version}</version>  
  74.         </dependency>  
  75.   
  76.         <dependency>  
  77.             <groupId>org.springframework</groupId>  
  78.             <artifactId>spring-test</artifactId>  
  79.             <version>${spring.version}</version>  
  80.         </dependency>  
  81.         <!-- springframe end -->  
  82.   
  83.         <!-- mybatis核心包 -->  
  84.         <dependency>  
  85.             <groupId>org.mybatis</groupId>  
  86.             <artifactId>mybatis</artifactId>  
  87.             <version>${mybatis.version}</version>  
  88.         </dependency>  
  89.         <!-- mybatis/spring包 -->  
  90.         <dependency>  
  91.             <groupId>org.mybatis</groupId>  
  92.             <artifactId>mybatis-spring</artifactId>  
  93.             <version>1.2.2</version>  
  94.         </dependency>  
  95.         <!-- mysql驱动包 -->  
  96.         <dependency>  
  97.             <groupId>mysql</groupId>  
  98.             <artifactId>mysql-connector-java</artifactId>  
  99.             <version>5.1.29</version>  
  100.         </dependency>  
  101.         <!-- junit测试包 -->  
  102.         <dependency>  
  103.             <groupId>junit</groupId>  
  104.             <artifactId>junit</artifactId>  
  105.             <version>4.11</version>  
  106.             <scope>test</scope>  
  107.         </dependency>  
  108.         <!-- 阿里巴巴数据源包 -->  
  109.         <dependency>  
  110.             <groupId>com.alibaba</groupId>  
  111.             <artifactId>druid</artifactId>  
  112.             <version>1.0.2</version>  
  113.         </dependency>  
  114.   
  115.         <!-- json数据 -->  
  116.         <dependency>  
  117.             <groupId>org.codehaus.jackson</groupId>  
  118.             <artifactId>jackson-mapper-asl</artifactId>  
  119.             <version>1.9.13</version>  
  120.         </dependency>  
  121.   
  122.         <!-- 日志文件管理包 -->  
  123.         <!-- log start -->  
  124.         <dependency>  
  125.             <groupId>log4j</groupId>  
  126.             <artifactId>log4j</artifactId>  
  127.             <version>${log4j.version}</version>  
  128.         </dependency>  
  129.         <dependency>  
  130.             <groupId>org.slf4j</groupId>  
  131.             <artifactId>slf4j-api</artifactId>  
  132.             <version>${slf4j.version}</version>  
  133.         </dependency>  
  134.         <dependency>  
  135.             <groupId>org.slf4j</groupId>  
  136.             <artifactId>slf4j-log4j12</artifactId>  
  137.             <version>${slf4j.version}</version>  
  138.         </dependency>  
  139.         <!-- log end -->  
  140.     </dependencies>  
  141.     <build>  
  142.         <finalName>springmvc</finalName>  
  143.     </build>  
  144. </project>  
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>eyas.springmvc</groupId>
	<artifactId>springmvc</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>springmvc Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<properties>
		<!-- spring版本号 -->
		<spring.version>3.2.4.RELEASE</spring.version>
		<!-- mybatis版本号 -->
		<mybatis.version>3.2.4</mybatis.version>
		<!-- log4j日志文件管理包版本 -->
		<slf4j.version>1.6.6</slf4j.version>
		<log4j.version>1.2.9</log4j.version>
	</properties>
	<dependencies>
		<!-- spring核心包 -->
		<!-- springframe start -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-web&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-oxm&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-tx&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-jdbc&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-aop&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-aop&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;dependency&gt;
		&lt;groupId&gt;org.springframework&lt;/groupId&gt;
		&lt;artifactId&gt;spring-test&lt;/artifactId&gt;
		&lt;version&gt;${spring.version}&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;!-- springframe end --&gt;

	&lt;!-- mybatis核心包 --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;org.mybatis&lt;/groupId&gt;
		&lt;artifactId&gt;mybatis&lt;/artifactId&gt;
		&lt;version&gt;${mybatis.version}&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;!-- mybatis/spring包 --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;org.mybatis&lt;/groupId&gt;
		&lt;artifactId&gt;mybatis-spring&lt;/artifactId&gt;
		&lt;version&gt;1.2.2&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;!-- mysql驱动包 --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;mysql&lt;/groupId&gt;
		&lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
		&lt;version&gt;5.1.29&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;!-- junit测试包 --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;junit&lt;/groupId&gt;
		&lt;artifactId&gt;junit&lt;/artifactId&gt;
		&lt;version&gt;4.11&lt;/version&gt;
		&lt;scope&gt;test&lt;/scope&gt;
	&lt;/dependency&gt;
	&lt;!-- 阿里巴巴数据源包 --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;com.alibaba&lt;/groupId&gt;
		&lt;artifactId&gt;druid&lt;/artifactId&gt;
		&lt;version&gt;1.0.2&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;!-- json数据 --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt;
		&lt;artifactId&gt;jackson-mapper-asl&lt;/artifactId&gt;
		&lt;version&gt;1.9.13&lt;/version&gt;
	&lt;/dependency&gt;

	&lt;!-- 日志文件管理包 --&gt;
	&lt;!-- log start --&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;log4j&lt;/groupId&gt;
		&lt;artifactId&gt;log4j&lt;/artifactId&gt;
		&lt;version&gt;${log4j.version}&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;org.slf4j&lt;/groupId&gt;
		&lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
		&lt;version&gt;${slf4j.version}&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;dependency&gt;
		&lt;groupId&gt;org.slf4j&lt;/groupId&gt;
		&lt;artifactId&gt;slf4j-log4j12&lt;/artifactId&gt;
		&lt;version&gt;${slf4j.version}&lt;/version&gt;
	&lt;/dependency&gt;
	&lt;!-- log end --&gt;
&lt;/dependencies&gt;
&lt;build&gt;
	&lt;finalName&gt;springmvc&lt;/finalName&gt;
&lt;/build&gt;

</project>


3. 配置数据库连接属性

conf/ jdbc.properties(jdbc配置文件)


  
  
  1. jdbc_driverClassName=com.mysql.jdbc.Driver
  2. jdbc_url=jdbc:mysql: //localhost:3306/mydays?useUnicode=true&amp;characterEncoding=utf-8
  3. jdbc_username=root
  4. jdbc_password=root

4.  配置spring配置文件

    conf/spring.xml(spring配置文件的扫描)


  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:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.  xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  7.       http://www.springframework.org/schema/context  
  8.       http://www.springframework.org/schema/context/spring-context.xsd">  
  9.   
  10.     <!-- 引入jdbc配置文件 -->  
  11.     <context:property-placeholder location="classpath:conf/jdbc.properties"/>  
  12.       
  13.     <!-- 扫描文件(自动将servicec层注入) -->  
  14.     <context:component-scan base-package="cn.springmvc.service"/>  
  15. </beans>  
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 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
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd">
&lt;!-- 引入jdbc配置文件 --&gt;
&lt;context:property-placeholder location="classpath:conf/jdbc.properties"/&gt;

&lt;!-- 扫描文件(自动将servicec层注入) --&gt;
&lt;context:component-scan base-package="cn.springmvc.service"/&gt;

</beans>
  conf/spring-mybatis.xml(spring与mybatis连接属性)

  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.   xmlns:util="http://www.springframework.org/schema/util"  
  9.   xsi:schemaLocation="http://www.springframework.org/schema/beans  
  10.     http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
  11.     http://www.springframework.org/schema/context  
  12.     http://www.springframework.org/schema/context/spring-context-3.2.xsd  
  13.     http://www.springframework.org/schema/tx  
  14.     http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
  15.     http://www.springframework.org/schema/aop  
  16.     http://www.springframework.org/schema/aop/spring-aop-3.2.xsd  
  17.     http://www.springframework.org/schema/util   
  18.     http://www.springframework.org/schema/util/spring-util-3.2.xsd">  
  19.   
  20.     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"  
  21.     destroy-method="close" >  
  22.     <property name="driverClassName">  
  23.       <value>${jdbc_driverClassName}</value>  
  24.     </property>  
  25.     <property name="url">  
  26.       <value>${jdbc_url}</value>  
  27.     </property>  
  28.     <property name="username">  
  29.       <value>${jdbc_username}</value>  
  30.     </property>  
  31.     <property name="password">  
  32.       <value>${jdbc_password}</value>  
  33.     </property>  
  34.     <!-- 连接池最大使用连接数 -->  
  35.     <property name="maxActive">  
  36.       <value>20</value>  
  37.     </property>  
  38.     <!-- 初始化连接大小 -->  
  39.     <property name="initialSize">  
  40.       <value>1</value>  
  41.     </property>  
  42.     <!-- 获取连接最大等待时间 -->  
  43.     <property name="maxWait">  
  44.       <value>60000</value>  
  45.     </property>  
  46.     <!-- 连接池最大空闲 -->  
  47.     <property name="maxIdle">  
  48.       <value>20</value>  
  49.     </property>  
  50.     <!-- 连接池最小空闲 -->  
  51.     <property name="minIdle">  
  52.       <value>3</value>  
  53.     </property>  
  54.     <!-- 自动清除无用连接 -->  
  55.     <property name="removeAbandoned">  
  56.       <value>true</value>  
  57.     </property>  
  58.     <!-- 清除无用连接的等待时间 -->  
  59.     <property name="removeAbandonedTimeout">  
  60.       <value>180</value>  
  61.     </property>  
  62.     <!-- 连接属性 -->  
  63.     <property name="connectionProperties">  
  64.       <value>clientEncoding=UTF-8</value>  
  65.     </property>  
  66.   </bean>  
  67.       
  68.     <!-- mybatis文件配置,扫描所有mapper文件 -->  
  69.       <bean id="sqlSessionFactory"  
  70.           class="org.mybatis.spring.SqlSessionFactoryBean"  
  71.           p:dataSource-ref="dataSource"  
  72.           p:configLocation="classpath:conf/mybatis-config.xml"  
  73.           p:mapperLocations="classpath:mapper/*.xml"/><!-- configLocation为mybatis属性 mapperLocations为所有mapper-->  
  74.         
  75.    <!-- spring与mybatis整合配置,扫描所有dao -->  
  76.  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"  
  77.         p:basePackage="cn.springmvc.dao"   
  78.         p:sqlSessionFactoryBeanName="sqlSessionFactory"/>  
  79.    
  80.    <!-- 对数据源进行事务管理 -->  
  81.   <bean id="transactionManager"   
  82.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager"  
  83.         p:dataSource-ref="dataSource"/>  
  84. </beans>  
<?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:context="http://www.springframework.org/schema/context"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:util="http://www.springframework.org/schema/util"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.2.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
    http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util-3.2.xsd">
&lt;bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
destroy-method="close" &gt;
&lt;property name="driverClassName"&gt;
  &lt;value&gt;${jdbc_driverClassName}&lt;/value&gt;
&lt;/property&gt;
&lt;property name="url"&gt;
  &lt;value&gt;${jdbc_url}&lt;/value&gt;
&lt;/property&gt;
&lt;property name="username"&gt;
  &lt;value&gt;${jdbc_username}&lt;/value&gt;
&lt;/property&gt;
&lt;property name="password"&gt;
  &lt;value&gt;${jdbc_password}&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 连接池最大使用连接数 --&gt;
&lt;property name="maxActive"&gt;
  &lt;value&gt;20&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 初始化连接大小 --&gt;
&lt;property name="initialSize"&gt;
  &lt;value&gt;1&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 获取连接最大等待时间 --&gt;
&lt;property name="maxWait"&gt;
  &lt;value&gt;60000&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 连接池最大空闲 --&gt;
&lt;property name="maxIdle"&gt;
  &lt;value&gt;20&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 连接池最小空闲 --&gt;
&lt;property name="minIdle"&gt;
  &lt;value&gt;3&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 自动清除无用连接 --&gt;
&lt;property name="removeAbandoned"&gt;
  &lt;value&gt;true&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 清除无用连接的等待时间 --&gt;
&lt;property name="removeAbandonedTimeout"&gt;
  &lt;value&gt;180&lt;/value&gt;
&lt;/property&gt;
&lt;!-- 连接属性 --&gt;
&lt;property name="connectionProperties"&gt;
  &lt;value&gt;clientEncoding=UTF-8&lt;/value&gt;
&lt;/property&gt;

</bean>

&lt;!-- mybatis文件配置,扫描所有mapper文件 --&gt;
  &lt;bean id="sqlSessionFactory"
      class="org.mybatis.spring.SqlSessionFactoryBean"
      p:dataSource-ref="dataSource"
      p:configLocation="classpath:conf/mybatis-config.xml"
      p:mapperLocations="classpath:mapper/*.xml"/&gt;&lt;!-- configLocation为mybatis属性 mapperLocations为所有mapper--&gt;

<!-- spring与mybatis整合配置,扫描所有dao -->
<bean class=“org.mybatis.spring.mapper.MapperScannerConfigurer”
p:basePackage=“cn.springmvc.dao”
p:sqlSessionFactoryBeanName=“sqlSessionFactory”/>

<!-- 对数据源进行事务管理 -->
<bean id=“transactionManager”
class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”
p:dataSource-ref=“dataSource”/>
</beans>

5.  java代码编写(model,dao,service层代码)

   cn.springmvc.model/User.java(用户基本信息)



  
  
  1. package cn.springmvc.model;
  2. /**
  3. * 用户表
  4. */
  5. public class User {
  6. private int id;
  7. private int state;
  8. private String nickname;
  9. public int getId() {
  10. return id;
  11. }
  12. public void setId(int id) {
  13. this.id = id;
  14. }
  15. public int getState() {
  16. return state;
  17. }
  18. public void setState(int state) {
  19. this.state = state;
  20. }
  21. public String getNickname() {
  22. return nickname;
  23. }
  24. public void setNickname(String nickname) {
  25. this.nickname = nickname;
  26. }
  27. }



cn.springmvc.dao/UserDAO.java(dao操作接口)




  
  
  1. package cn.springmvc.dao;
  2. import cn.springmvc.model.User;
  3. public interface UserDAO {
  4. /**
  5. * 添加新用户
  6. * @param user
  7. * @return
  8. */
  9. public int insertUser(User user);
  10. }

cn.springmvc.service/UserService.java(service层接口)



  
  
  1. package cn.springmvc.service;
  2. import cn.springmvc.model.User;
  3. public interface UserService {
  4. public int insertUser(User user);
  5. }



cn.springmvc.service.impl/UserServiceImpl.java(service层接口实现)





  
  
  1. package cn.springmvc.service.impl;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Service;
  4. import cn.springmvc.dao.UserDAO;
  5. import cn.springmvc.model.User;
  6. import cn.springmvc.service.UserService;
  7. @Service
  8. public class UserServiceImpl implements UserService{
  9. @Autowired
  10. private UserDAO userDAO;
  11. @Override
  12. public int insertUser(User user) {
  13. // TODO Auto-generated method stub
  14. return userDAO.insertUser(user);
  15. }
  16. }



6.  mybatis配置


   conf/mybatis-config.xml(mybatis配置的基本文件)


  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. <configuration>  
  6.         <!-- 命名空间 -->  
  7.     <typeAliases>  
  8.          <typeAlias alias="User" type="cn.springmvc.model.User"/>   
  9.     </typeAliases>  
  10.   
  11.     <!-- 映射map -->  
  12.     <mappers>  
  13.     </mappers>  
  14. </configuration>  
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration 
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
        <!-- 命名空间 -->
    <typeAliases>
         <typeAlias alias="User" type="cn.springmvc.model.User"/> 
    </typeAliases>
&lt;!-- 映射map --&gt;
&lt;mappers&gt;
&lt;/mappers&gt;

</configuration>



mapper/UserMapper.xml(mybatis的实现)



  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. <mapper namespace="cn.springmvc.dao.UserDAO">  
  6.              
  7.          <insert id="insertUser" parameterType="User" keyProperty="id">  
  8.              insert into days_user(    
  9.          state,  
  10.          nickname)   
  11.          values   
  12.          (          
  13.          #{state},  
  14.          #{nickname})  
  15.          </insert>  
  16.            
  17. </mapper>  
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.springmvc.dao.UserDAO">
     &lt;insert id="insertUser" parameterType="User" keyProperty="id"&gt;
         insert into days_user(  
     state,
     nickname) 
     values 
     (        
     #{state},
     #{nickname})
     &lt;/insert&gt;

</mapper>



这样就完成了基本插入用户的功能!


7.  junit测试插入功能


cn.springmvc.test/UserTest.java(用户测试模块)


  
  
  1. package cn.springmvc.test;
  2. import org.junit.Before;
  3. import org.junit.Test;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6. import cn.springmvc.model.User;
  7. import cn.springmvc.service.UserService;
  8. public class UserTest {
  9. private UserService userService;
  10. @Before
  11. public void before(){
  12. @SuppressWarnings( "resource")
  13. ApplicationContext context = new ClassPathXmlApplicationContext( new String[]{ "classpath:conf/spring.xml"
  14. , "classpath:conf/spring-mybatis.xml"});
  15. userService = (UserService) context.getBean( "userServiceImpl");
  16. }
  17. @Test
  18. public void addUser(){
  19. User user = new User();
  20. user.setNickname( "你好");
  21. user.setState( 2);
  22. System.out.println(userService.insertUser(user));
  23. }
  24. }



测试结果如图:


maven+springMVC+mybatis+junit详细搭建过程

即完成插入功能!

8.  springMVC模块搭建 

    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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  5.     id="WebApp_ID" version="2.5">  
  6.     <display-name>Archetype Created Web Application</display-name>  
  7.   
  8.     <!-- 读取spring配置文件 -->  
  9.     <context-param>  
  10.         <param-name>contextConfigLocation</param-name>  
  11.         <param-value>classpath:conf/spring.xml;  
  12.             classpath:conf/spring-mybatis.xml  
  13.         </param-value>  
  14.     </context-param>  
  15.     <!-- 设计路径变量值 -->  
  16.     <context-param>  
  17.         <param-name>webAppRootKey</param-name>  
  18.         <param-value>springmvc.root</param-value>  
  19.     </context-param>  
  20.   
  21.   
  22.     <!-- Spring字符集过滤器 -->  
  23.     <filter>  
  24.         <filter-name>SpringEncodingFilter</filter-name>  
  25.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  26.         <init-param>  
  27.             <param-name>encoding</param-name>  
  28.             <param-value>UTF-8</param-value>  
  29.         </init-param>  
  30.         <init-param>  
  31.             <param-name>forceEncoding</param-name>  
  32.             <param-value>true</param-value>  
  33.         </init-param>  
  34.     </filter>  
  35.     <filter-mapping>  
  36.         <filter-name>SpringEncodingFilter</filter-name>  
  37.         <url-pattern>/*</url-pattern>  
  38.     </filter-mapping>  
  39.   
  40.     <!-- 日志记录 -->  
  41.     <context-param>  
  42.         <!-- 日志配置文件路径 -->  
  43.         <param-name>log4jConfigLocation</param-name>  
  44.         <param-value>classpath:conf/log4j.properties</param-value>  
  45.     </context-param>  
  46.     <context-param>  
  47.         <!-- 日志页面的刷新间隔 -->  
  48.         <param-name>log4jRefreshInterval</param-name>  
  49.         <param-value>6000</param-value>  
  50.     </context-param>  
  51.     <listener>  
  52.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  53.     </listener>  
  54.   
  55.     <listener>  
  56.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  57.     </listener>  
  58.   
  59.     <!-- springMVC核心配置 -->  
  60.     <servlet>  
  61.         <servlet-name>spring</servlet-name>  
  62.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  63.         <init-param>  
  64.             <param-name>contextConfigLocation</param-name>  
  65.             <param-value>classpath:conf/spring-mvc.xml</param-value>  
  66.         </init-param>  
  67.         <load-on-startup>2</load-on-startup>  
  68.     </servlet>  
  69.     <servlet-mapping>  
  70.         <servlet-name>spring</servlet-name>  
  71.         <url-pattern>*.do</url-pattern>  
  72.     </servlet-mapping>  
  73.   
  74.     <welcome-file-list>  
  75.         <welcome-file>index.jsp</welcome-file>  
  76.     </welcome-file-list>  
  77.   
  78.     <!-- 错误跳转页面 -->  
  79.     <error-page>  
  80.         <!-- 路径不正确 -->  
  81.         <error-code>404</error-code>  
  82.         <location>/WEB-INF/errorpage/404.jsp</location>  
  83.     </error-page>  
  84.     <error-page>  
  85.         <!-- 没有访问权限,访问被禁止 -->  
  86.         <error-code>405</error-code>  
  87.         <location>/WEB-INF/errorpage/405.jsp</location>  
  88.     </error-page>  
  89.     <error-page>  
  90.         <!-- 内部错误 -->  
  91.         <error-code>500</error-code>  
  92.         <location>/WEB-INF/errorpage/500.jsp</location>  
  93.     </error-page>  
  94. </web-app>  
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>Archetype Created Web Application</display-name>
&lt;!-- 读取spring配置文件 --&gt;
&lt;context-param&gt;
	&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
	&lt;param-value&gt;classpath:conf/spring.xml;
		classpath:conf/spring-mybatis.xml
	&lt;/param-value&gt;
&lt;/context-param&gt;
&lt;!-- 设计路径变量值 --&gt;
&lt;context-param&gt;
	&lt;param-name&gt;webAppRootKey&lt;/param-name&gt;
	&lt;param-value&gt;springmvc.root&lt;/param-value&gt;
&lt;/context-param&gt;


&lt;!-- Spring字符集过滤器 --&gt;
&lt;filter&gt;
	&lt;filter-name&gt;SpringEncodingFilter&lt;/filter-name&gt;
	&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;encoding&lt;/param-name&gt;
		&lt;param-value&gt;UTF-8&lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;forceEncoding&lt;/param-name&gt;
		&lt;param-value&gt;true&lt;/param-value&gt;
	&lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;SpringEncodingFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;

&lt;!-- 日志记录 --&gt;
&lt;context-param&gt;
	&lt;!-- 日志配置文件路径 --&gt;
	&lt;param-name&gt;log4jConfigLocation&lt;/param-name&gt;
	&lt;param-value&gt;classpath:conf/log4j.properties&lt;/param-value&gt;
&lt;/context-param&gt;
&lt;context-param&gt;
	&lt;!-- 日志页面的刷新间隔 --&gt;
	&lt;param-name&gt;log4jRefreshInterval&lt;/param-name&gt;
	&lt;param-value&gt;6000&lt;/param-value&gt;
&lt;/context-param&gt;
&lt;listener&gt;
	&lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener&lt;/listener-class&gt;
&lt;/listener&gt;

&lt;listener&gt;
	&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
&lt;/listener&gt;

&lt;!-- springMVC核心配置 --&gt;
&lt;servlet&gt;
	&lt;servlet-name&gt;spring&lt;/servlet-name&gt;
	&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
		&lt;param-value&gt;classpath:conf/spring-mvc.xml&lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
	&lt;servlet-name&gt;spring&lt;/servlet-name&gt;
	&lt;url-pattern&gt;*.do&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;

&lt;welcome-file-list&gt;
	&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

&lt;!-- 错误跳转页面 --&gt;
&lt;error-page&gt;
	&lt;!-- 路径不正确 --&gt;
	&lt;error-code&gt;404&lt;/error-code&gt;
	&lt;location&gt;/WEB-INF/errorpage/404.jsp&lt;/location&gt;
&lt;/error-page&gt;
&lt;error-page&gt;
	&lt;!-- 没有访问权限,访问被禁止 --&gt;
	&lt;error-code&gt;405&lt;/error-code&gt;
	&lt;location&gt;/WEB-INF/errorpage/405.jsp&lt;/location&gt;
&lt;/error-page&gt;
&lt;error-page&gt;
	&lt;!-- 内部错误 --&gt;
	&lt;error-code&gt;500&lt;/error-code&gt;
	&lt;location&gt;/WEB-INF/errorpage/500.jsp&lt;/location&gt;
&lt;/error-page&gt;

</web-app>



conf/spring-mvc.xml(mvc配置文件)
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.   xmlns:p="http://www.springframework.org/schema/p"  
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  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-3.2.xsd  
  10.     http://www.springframework.org/schema/context  
  11.     http://www.springframework.org/schema/context/spring-context-3.2.xsd  
  12.     http://www.springframework.org/schema/mvc  
  13.     http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">  
  14.       
  15.     <!-- 扫描controller(controller层注入) -->  
  16.    <context:component-scan base-package="cn.springmvc.controller"/>  
  17.      
  18.    <!-- 避免IE在ajax请求时,返回json出现下载 -->  
  19.    <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">       
  20.         <property name="supportedMediaTypes">  
  21.             <list>  
  22.                 <value>text/html;charset=UTF-8</value>  
  23.             </list>  
  24.         </property>  
  25.     </bean>  
  26.       
  27.    <!-- 对模型视图添加前后缀 -->  
  28.      <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"   
  29.       p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>  
  30. </beans>  
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:p="http://www.springframework.org/schema/p"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.2.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
&lt;!-- 扫描controller(controller层注入) --&gt;

<context:component-scan base-package=“cn.springmvc.controller”/>

<!-- 避免IE在ajax请求时,返回json出现下载 -->
<bean id=“jacksonMessageConverter” class=“org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”>
<property name=“supportedMediaTypes”>
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>

<!-- 对模型视图添加前后缀 -->
<bean id=“viewResolver” class=“org.springframework.web.servlet.view.InternalResourceViewResolver”
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
</beans>



9.  log4j日志记录搭建


    conf/log4j.properties(日志记录的配置文件)

  1.  ### set log levels ###  
  2. #log4j.rootLogger = debug , stdout , D , E  
  3. log4j.rootLogger = debug , stdout , D  
  4.   
  5. ###  output to the console ###  
  6. log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
  7. log4j.appender.stdout.Target = System.out  
  8. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
  9. #log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n  
  10. log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n  
  11.   
  12. ### Output to the log file ###  
  13. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
  14. log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/log.log  
  15. log4j.appender.D.Append = true  
  16. log4j.appender.D.Threshold = DEBUG   
  17. log4j.appender.D.layout = org.apache.log4j.PatternLayout  
  18. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n  
  19.   
  20. ### Save exception information to separate file ###  
  21. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
  22. log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/error.log   
  23. log4j.appender.D.Append = true  
  24. log4j.appender.D.Threshold = ERROR   
  25. log4j.appender.D.layout = org.apache.log4j.PatternLayout  
  26. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n  
 ### set log levels ###
#log4j.rootLogger = debug , stdout , D , E
log4j.rootLogger = debug , stdout , D

output to the console

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

Output to the log file

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

Save exception information to separate file

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/error.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n



10.  测试运行

WEB-INF/jsp/index.jsp(测试文件)



  
  
  1. <%@ page language= "java" contentType= "text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h1>欢迎你!!!</h1>
  11. </body>
  12. </html>



cn.springmvc.controller/UserComtroller.java(controller层控制)

  
  
  1. package cn.springmvc.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. @Controller
  5. @RequestMapping( "/")
  6. public class UserController {
  7. @RequestMapping( "index")
  8. public String index(){
  9. return "index";
  10. }
  11. }




将该项目部署到本地tomcat6中

右击该项目选择Run as,选择Run on Server

选择自己建立的tomcat6运行如图:

maven+springMVC+mybatis+junit详细搭建过程

控制台打印出日志如图(启动成功):

maven+springMVC+mybatis+junit详细搭建过程

在浏览器中输入:http://localhost:8080/springmvc/index.do 进行测试

效果如图(返回成功):


				<script>
					(function(){
						function setArticleH(btnReadmore,posi){
							var winH = $(window).height();
							var articleBox = $("div.article_content");
							var artH = articleBox.height();
							if(artH > winH*posi){
								articleBox.css({
									'height':winH*posi+'px',
									'overflow':'hidden'
								})
								btnReadmore.click(function(){
									articleBox.removeAttr("style");
									$(this).parent().remove();
								})
							}else{
								btnReadmore.parent().remove();
							}
						}
						var btnReadmore = $("#btn-readmore");
						if(btnReadmore.length>0){
							if(currentUserName){
								setArticleH(btnReadmore,3);
							}else{
								setArticleH(btnReadmore,1.2);
							}
						}
					})()
				</script>
				</article>

猜你喜欢

转载自blog.csdn.net/Helloworld_jin/article/details/82970040