zoukankan      html  css  js  c++  java
  • Maven + 最新SSM整合

    . top

    1. 开发环境搭建

    参考博文:Eclipse4.6(Neon) + Tomcat8 + MAVEN3.3.9 + SVN项目完整环境搭建

    2. Maven Web项目创建

    2.1. new project

    2.2. new 2

    2.3. new 3

    2.4. 4

    2.5. 完成后目录结构图

     

    dir

     

    2.5 (可选)设置: 选中项目 单击右键设置;

    • 项目编码换成UTF-8:Properties -> Resource -> Text file encoding

     

    preperties resource

     

    • 设置默认的JRE:Properties -> Java Build Path -> 选项卡 Libraries

     

    environment

     

    • 设置 Properties -> Project Facets

     

    select

     

    选中3.0 可能会出错

     

    error

     

    解决方法: 修改该项目路径下的 .settings/ org.eclipse.wst.common.project.facet.core.xml 文件;

    <!-- 修改为需要的版本号 -->
    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <fixed facet="wst.jsdt.web"/>
      <installed facet="java" version="1.8"/>
      <installed facet="jst.web" version="3.0"/>
      <installed facet="wst.jsdt.web" version="1.0"/>
    </faceted-project>
    

    重启Eclipse可能会警告!按照提示操作即可。
    或者参考网站: Cannot change version of project facet Dynamic web

    3. SSM整合

    2个配置文件:spring-mybatis.xml、spring-mvc.xml
    2个资源文件:jdbc.propertis、log4j.properties

    完整目录结构如下图:

     

    root

     

    3.1 Maven引入需要的JAR包

    本教程使用部分jar包的版本:

           Spring: 4.3.3.RELEASE
           Spring MVC:  4.3.2.RELEASE
           MyBatis:  3.4.1
           mybatis-spring:  1.3.0
           mysql-connector-java:  6.0.4
           javax.servlet-api:3.1.0 
           commons-dbcp:  1.4
           fastjson:  1.2.17
           commons-io:  2.5
           commons-codec:  1.10
    

    推荐2个maven找jar包配置的网站:

    代码清单 3-1:pom.xml

       <properties>  
           <!-- spring版本号 -->  
           <spring.version>4.3.3.RELEASE</spring.version>  
           <!-- mybatis版本号 -->  
           <mybatis.version>3.4.1</mybatis.version>  
           <!-- log4j日志文件管理包版本 -->  
           <slf4j.version>1.7.7</slf4j.version>  
           <log4j.version>1.2.17</log4j.version>  
       </properties>
     
     <dependencies>
           <dependency>
               <groupId>junit</groupId>
               <artifactId>junit</artifactId>
               <version>4.12</version>
               <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
               <scope>test</scope>
           </dependency>
           <dependency>
               <groupId>javax.servlet</groupId>
               <artifactId>javax.servlet-api</artifactId>
               <version>3.1.0</version>
           </dependency>
           <!-- spring核心包 -->
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-core</artifactId>
               <version>${spring.version}</version>
           </dependency>
    
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-web</artifactId>
               <version>${spring.version}</version>
           </dependency>
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-oxm</artifactId>
               <version>${spring.version}</version>
           </dependency>
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-tx</artifactId>
               <version>${spring.version}</version>
           </dependency>
    
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-jdbc</artifactId>
               <version>${spring.version}</version>
           </dependency>
    
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-webmvc</artifactId>
               <version>${spring.version}</version>
           </dependency>
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-aop</artifactId>
               <version>${spring.version}</version>
           </dependency>
    
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-context-support</artifactId>
               <version>${spring.version}</version>
           </dependency>
    
           <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-test</artifactId>
               <version>${spring.version}</version>
           </dependency>
           <!-- mybatis核心包 -->
           <dependency>
               <groupId>org.mybatis</groupId>
               <artifactId>mybatis</artifactId>
               <version>${mybatis.version}</version>
           </dependency>
           <!-- mybatis/spring包 -->
           <dependency>
               <groupId>org.mybatis</groupId>
               <artifactId>mybatis-spring</artifactId>
               <version>1.3.0</version>
           </dependency>
           <!-- 导入java ee jar 包 -->
           <dependency>
               <groupId>javax</groupId>
               <artifactId>javaee-api</artifactId>
               <version>7.0</version>
           </dependency>
           <!-- 导入Mysql数据库链接jar包 -->
           <dependency>
               <groupId>mysql</groupId>
               <artifactId>mysql-connector-java</artifactId>
               <version>6.0.4</version>
           </dependency>
           <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
           <dependency>
               <groupId>commons-dbcp</groupId>
               <artifactId>commons-dbcp</artifactId>
               <version>1.4</version>
           </dependency>
           <!-- JSTL标签类 -->
           <dependency>
               <groupId>jstl</groupId>
               <artifactId>jstl</artifactId>
               <version>1.2</version>
           </dependency>
           <!-- 日志文件管理包 -->
           <!-- log start -->
           <dependency>
               <groupId>log4j</groupId>
               <artifactId>log4j</artifactId>
               <version>${log4j.version}</version>
           </dependency>
           
           <!-- 格式化对象,方便输出日志 -->
           <dependency>
               <groupId>com.alibaba</groupId>
               <artifactId>fastjson</artifactId>
               <version>1.2.17</version>
           </dependency>
    
           <dependency>
               <groupId>org.slf4j</groupId>
               <artifactId>slf4j-api</artifactId>
               <version>${slf4j.version}</version>
           </dependency>
    
           <dependency>
               <groupId>org.slf4j</groupId>
               <artifactId>slf4j-log4j12</artifactId>
               <version>${slf4j.version}</version>
           </dependency>
           <!-- log end -->
    
           <!-- 映入JSON -->
           <dependency>
               <groupId>org.codehaus.jackson</groupId>
               <artifactId>jackson-mapper-asl</artifactId>
               <version>1.9.13</version>
           </dependency>
           <dependency>
               <groupId>com.fasterxml.jackson.core</groupId>
               <artifactId>jackson-core</artifactId>
               <version>2.8.3</version>
           </dependency>
           <dependency>
               <groupId>com.fasterxml.jackson.core</groupId>
               <artifactId>jackson-databind</artifactId>
               <version>2.8.3</version>
           </dependency>
           <dependency>
               <groupId>com.fasterxml.jackson.core</groupId>
               <artifactId>jackson-annotations</artifactId>
               <version>2.8.3</version>
           </dependency>
    
           <!-- 上传组件包 -->
           <dependency>
               <groupId>commons-fileupload</groupId>
               <artifactId>commons-fileupload</artifactId>
               <version>1.3.1</version>
           </dependency>
           <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.5</version>
           </dependency>
           <dependency>
               <groupId>commons-codec</groupId>
               <artifactId>commons-codec</artifactId>
               <version>1.10</version>
           </dependency>
    
     </dependencies>
    
    

    3.2 Spring与MyBatis的整合

    所有需要的JAR包都引入以后,首先进行Spring与MyBatis的整合,然后再进行JUnit测试,先看一个项目结构图:

     

    dir2

     

    3.2.1 建立JDBC属性文件(文件编码修改为utf-8)

    代码清单 3-2:jdbc.properties

    jdbc.driver_class=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql:///test?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
    jdbc.username=username
    jdbc.password=password
    
    #定义初始连接数
    initialSize=0
    #定义最大连接数
    maxActive=20
    #定义最大空闲
    maxIdle=20
    #定义最小空闲
    minIdle=1
    #定义最长等待时间
    maxWait=60000
    
    
    3.2.2 建立spring-mybatis.xml配置文件

    这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。注释也很详细,大家看看就明白了。

    代码清单 3-3:spring-mybatis.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:mybatis-spring="http://mybatis.org/schema/mybatis-spring" 
      xmlns:tx="http://www.springframework.org/schema/tx" 
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="
        http://mybatis.org/schema/mybatis-spring 
        http://mybatis.org/schema/mybatis-spring-1.3.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/mvc  
        http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
    
        <!-- 支持注解 -->
        <context:annotation-config></context:annotation-config>
            <!--自动扫描 :通过注解过滤被扫描的类 -->  
            <context:component-scan base-package="org.sei" use-default-filters="false">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        </context:component-scan>
    
        <!-- 引入配置文件 -->
        <bean id="propertyConfigurer"
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="classpath:jdbc.properties" />
        </bean>
    
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName" value="${jdbc.driver_class}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
            <!-- 初始化连接大小 -->
            <property name="initialSize" value="${initialSize}"></property>
            <!-- 连接池最大数量 -->
            <property name="maxActive" value="${maxActive}"></property>
            <!-- 连接池最大空闲 -->
            <property name="maxIdle" value="${maxIdle}"></property>
            <!-- 连接池最小空闲 -->
            <property name="minIdle" value="${minIdle}"></property>
            <!-- 获取连接最大等待时间 -->
            <property name="maxWait" value="${maxWait}"></property>
        </bean>
    
        <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <!-- 自动扫描mapping.xml文件 -->
            <property name="mapperLocations" value="classpath*:org/sei/mapping/*.xml"></property>
        </bean>
    
        <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="org.sei.dao" />
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        </bean>
    
        <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
        <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
    
    </beans>
    
    
    3.2.3 Log4j的配置

    详情参考博文:【转】Log4j配置详解;我这里直接贴码。

    代码清单 3-4:log4j.properties

    #定义LOG输出级别
    log4j.rootLogger=INFO,Console,File
    #定义日志输出目的地为控制台
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.Target=System.out
    #可以灵活地指定日志输出格式,下面一行是指定具体的格式
    log4j.appender.Console.layout = org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
    
    #文件大小到达指定尺寸的时候产生一个新的文件
    log4j.appender.File = org.apache.log4j.RollingFileAppender
    #指定输出目录
    log4j.appender.File.File = logs/ssm.log
    #定义文件最大大小
    log4j.appender.File.MaxFileSize = 10MB
    # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
    log4j.appender.File.Threshold = ALL
    log4j.appender.File.layout = org.apache.log4j.PatternLayout
    log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n
    
    3.2.4 JUnit测试Mybatise

    经过以上步骤(到3.2.2,log4j不配也没影响),我们已经完成了Spring和mybatis的整合,这样我们就可以编写一段测试代码来试试是否成功了。

    3.2.4.1 创建测试用表

    用SQL语句在test数据库中建立一个测试表user_t

    代码清单 3-5:test_t.sql

    DROP TABLE IF EXISTS `user_t`;
    
    CREATE TABLE `user_t` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `user_name` VARCHAR(40) NOT NULL,
      `password` VARCHAR(255) NOT NULL,
      `age` INT(4) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    
    /*Data for the table `user_t` */
    
    INSERT  INTO `user_t`(`id`,`user_name`,`password`,`age`) VALUES (1,'test1','pwd1',21);
    INSERT  INTO `user_t`(`id`,`user_name`,`password`,`age`) VALUES (2,'test2','pwd2',22);
    INSERT  INTO `user_t`(`id`,`user_name`,`password`,`age`) VALUES (3,'测试3','pwd2',23);
    
    3.2.4.2 利用MyBatis Generator自动创建代码

    参考博文:使用MyBatis Generator自动创建代码

    这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口;当然我习惯将生成的接口名改为 UserDao,而不是直接用它生成的UserMapper。如果不想麻烦可以不改。完成后将文件复制到工程中。如图:

     

    generator

     

    注意:

    • 自动生成的Dao和Pojo就只改包名,主要别忘记修改UserMapper.xml文件;

     

    mapper

     

    3.2.4.3 建立Service接口和实现类

    目录结构:

     

    service dir

     

    代码清单 3-6:UserService.jave

    package org.sei.service;
    
    import org.sei.pojo.User;
    
    public interface UserService
    {
       public User getUserById(int userId);
    }
    
    

    代码清单 3-7:UserServiceImpl.jave

    package org.sei.service.impl;
    
    import javax.annotation.Resource;
    
    import org.sei.dao.UserDao;
    import org.sei.pojo.User;
    import org.sei.service.UserService;
    //import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service   //注意:此注解不写会报错
    public class UserServiceImpl implements UserService
    {
       //@Autowired 和 @Resource
       //这里两者都可以用;具体详情请参考下面2个网站:
       //http://www.cnblogs.com/leiOOlei/p/3713779.html
       //http://www.zhihu.com/question/39356740
       @Resource
       private UserDao userDao;
       
       @Override
       public User getUserById(int userId)
       {
           return this.userDao.selectByPrimaryKey(userId);
       }
    }
    
    
    3.2.4.4 建立测试类

    测试类在src/test/java中建立,下面测试类中_注释掉的部分是不使用Spring时,一般情况下的一种测试方法_;如果使用了Spring那么就可以使用注解的方式来引入配置文件和类,然后再将service接口对象注入,就可以进行测试了。

    如果测试成功,表示Spring和Mybatis已经整合成功了。输出信息使用的是Log4j打印到控制台。

    代码清单 3-8:TestMyBatis.jave

    package org.sei.testmybatis;
    
    import javax.annotation.Resource;
    
    import org.apache.log4j.Logger;
    //import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    //import org.springframework.context.ApplicationContext;
    //import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import com.alibaba.fastjson.JSON;
    import org.sei.pojo.User;
    import org.sei.service.UserService;
    
    @RunWith(SpringJUnit4ClassRunner.class)  //表示继承了SpringJUnit4ClassRunner类
    @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})
    
    public class TestMyBatis {
        private static Logger logger = Logger.getLogger(TestMyBatis.class);
    //  private ApplicationContext ac = null;
        @Resource
        private UserService userService = null;
    
    //  @Before
    //  public void before() {
    //      ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    //      userService = (IUserService) ac.getBean("userService");
    //  }
    
        @Test
        public void test1() {
            User user = userService.getUserById(2);
            // System.out.println(user.getUserName());
            // logger.info("值:"+user.getUserName());
            logger.info(JSON.toJSONString(user));
        }
    }
    
    

    注意: 我用的是MySQL Connector/J 6.x 新版驱动,直接报异常!!!

    如有需要请看博文:MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常

    结果如图:

     

    result

     

    至此,完成Spring和mybatis这两大框架的整合,下面在继续进行SpringMVC的整合。

    3.3 整合SpringMVC

    上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。

    3.3.1 配置spring-mvc.xml

    配置里面的注释也很详细,在此就不说了;主要是自动扫描控制器,视图模式,注解的启动这三个。

    **注意:**配置文件中的一行:class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"

    我的项目里是jackson2.X版本的,如果你用的是jackson1.X版本的,不用写"2"。

    代码清单 3-9:spring-mvc.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:mybatis-spring="http://mybatis.org/schema/mybatis-spring" 
      xmlns:tx="http://www.springframework.org/schema/tx" 
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="
        http://mybatis.org/schema/mybatis-spring 
        http://mybatis.org/schema/mybatis-spring-1.3.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/mvc  
        http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
    
      <!-- 支持注解 -->
      <context:annotation-config></context:annotation-config>
      
      <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 (通过注解过滤被扫描的类)-->  
      <context:component-scan base-package="org.sei" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
      </context:component-scan>
      
      <!--避免IE执行AJAX时,返回JSON出现下载文件;注意:MappingJackson2  -->
      <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
          <list>
            <value>text/html;charset=UTF-8</value>
          </list>
        </property>
      </bean>
        
      <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->  
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
          <property name="messageConverters">
          <list>
            <ref bean="mappingJacksonHttpMessageConverter" />   <!-- JSON转换器 -->
          </list>
          </property>
      </bean>
        
      <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
          <property name="prefix" value="/WEB-INF/jsp/" />
          <property name="suffix" value=".jsp" />
      </bean>
        
      <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
      <bean id="multipartResolver"  
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
          <!-- 默认编码 -->
          <property name="defaultEncoding" value="utf-8" />  
          <!-- 文件大小最大值 -->
          <property name="maxUploadSize" value="10485760000" />  
          <!-- 内存中的最大值 -->
          <property name="maxInMemorySize" value="40960" />  
      </bean> 
    
    </beans>
    
    
    3.3.2 配置web.xml文件

    这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。配置一样有详细注释,不多解释了。

    代码清单 3-10:web.xml

    <?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"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
       version="3.0">
       <display-name>Archetype Created Web Application</display-name>
       <!-- Spring和mybatis的配置文件 -->
       <context-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:spring-mybatis.xml</param-value>
       </context-param>
       <!-- 编码过滤器 -->
       <filter>
           <filter-name>encodingFilter</filter-name>
           <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
           <async-supported>true</async-supported>
           <init-param>
               <param-name>encoding</param-name>
               <param-value>UTF-8</param-value>
           </init-param>
       </filter>
       <filter-mapping>
           <filter-name>encodingFilter</filter-name>
           <url-pattern>/*</url-pattern>
       </filter-mapping>
       <!-- Spring监听器 -->
       <listener>
           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
       </listener>
       <!-- 防止Spring内存溢出监听器 -->
       <listener>
           <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
       </listener>
    
       <!-- Spring MVC servlet -->
       <servlet>
           <servlet-name>SpringMVC</servlet-name>
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
           <init-param>
               <param-name>contextConfigLocation</param-name>
               <param-value>classpath:spring-mvc.xml</param-value>
           </init-param>
           <load-on-startup>1</load-on-startup>
           <async-supported>true</async-supported>
       </servlet>
       <servlet-mapping>
           <servlet-name>SpringMVC</servlet-name>
           <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
           <url-pattern>/</url-pattern>
       </servlet-mapping>
       <welcome-file-list>
           <welcome-file>/index.jsp</welcome-file>
       </welcome-file-list>
    
    </web-app>
    
    
    3.3.3 JUnit测试SpringMVC Controller

    接下来测试一下,很可能失败,没关系,继续调试;遇到问题是应该的,解决问题才能进步!
    (我也在不停的和BUG作斗争啊...)

    3.3.3.1 建立UserController控制类
    3.3.3.2 建立MockTestController测试类
    3.3.3.3 JUnit测试

    详情参考博文:springmvc controller junit 测试

    总结

    • 包的导入

    • 注解的使用

    • MySQL Connector/J 6.x 的新变化

    • 复制到代码的时候要根据本机环境修改相应的代码

    参考:

    1. SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/oucbl/p/5944140.html
Copyright © 2011-2022 走看看