1.  项目简介本文中,我们使用Mybatis+Spring+SpringMVC来完成一个迷你JavaWeb项目:用户管理系统。 功能:普通用户可以注册登录,管理员可以管理普通用户。
2.  环境准备2.1.  安装jdk参考《全平台安装JDK》 。
2.2.  安装maven下载地址: http://maven.apache.org/download.cgi 
1、解压到自己喜欢的目录(这里郝同学放到D:\Server路径下)。 2、添加环境变量M2_HOME,值为D:\Server\apache-maven-3.3.9 3、在Path中添加;%M2_HOME%\bin;。
打开命令提示符,输入mvn -v,如果能够看到maven版本号,说明安装成功。
2.3.  安装tomcat1、tomcat下载地址:http://tomcat.apache.org/download-80.cgi 
2、假设解压目录为D:\Server\apache-tomcat-8.5.9。
3、进入目录D:\Server\apache-tomcat-8.5.9\bin,双击startup.bat。
4、浏览器访问http://localhost:8080,启动成功则显示tomcat管理页面。
2.4.  idea配置idea配置参考《IDEA快捷键和配置》 。
3.  新建Web项目1、打开idea,File,New,Project,右边导航栏选择Maven,勾选Create from archetype,选择maven-archetype-webapp。
2、Next,输入GroupId为“com.voidking.pandawork”,输入ArtifactId为“pandawork-start”。
3、Next,选择自己安装的Maven中的User settings file,选择settings.xml中配置的Local repository。
4、Next,输入Project name,选择Project location,Finish。
5、稍等几十秒,Web项目便可以创建成功。
4.  初始化项目结构1、展开pandawork-start项目,展开src文件夹。
2、右键main文件夹,New,Directory,输入directory name为“java”。
3、右键main/java文件夹,New,Package,输入package name为“com.voidking.pandawork”。右键“com.voidking.pandawork”,新建文件README.md。
3、右键main/resources文件夹,New,Directory,输入directory name为“com.voidking.pandawork”。
3、至此,初始化项目结构完成。
5.  持久层5.1.  新建数据库1、使用navicat新建mysql数据库,数据库名为pandawork,字符集选择utf8–UTF-8 Unicode,排序规则选择utf8_general_ci。
2、新建表t_user,包括id、username、password三个字段。
1 2 3 4 5 6 7 DROP  TABLE IF  EXISTS  `t_user` ;CREATE  TABLE `t_user`  (  `id`  int(8 ) NOT  NULL  AUTO_INCREMENT,   `username`  varchar(16 ) NOT  NULL ,   `password`  varchar(16 ) NOT  NULL ,   PRIMARY  KEY  (`id` ) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
5.2.  mybatis的maven配置在pom.xml中,添加:
1 2 3 4 5 <dependency >   <groupId > org.mybatis</groupId >    <artifactId > mybatis</artifactId >    <version > 3.4.4</version >  </dependency > 
5.3.  连接mysql1、在pom.xml中,添加:
1 2 3 4 5 6 <dependency >   <groupId > mysql</groupId >    <artifactId > mysql-connector-java</artifactId >    <version > 5.1.30</version >  </dependency > 
2、右键resources文件夹,新建文件mybatis-config.xml,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?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 >     <environments  default ="development" >          <environment  id ="development" >              <transactionManager  type ="JDBC" />              <dataSource  type ="POOLED" >                  <property  name ="driver"  value ="com.mysql.jdbc.Driver" />                  <property  name ="url"  value ="jdbc:mysql://localhost:3306/pandawork" />                  <property  name ="username"  value ="root" />                  <property  name ="password"  value ="mysql" />              </dataSource >          </environment >      </environments >      <mappers >          <mapper  resource ="com/voidking/pandawork/mapper/user.mapper.xml" />      </mappers >  </configuration > 
3、main/java文件夹下,右键com.voidking.pandawork,新建包util。
4、右键包uitl,新建连接数据库的类ConnetDB.java,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 package  com.voidking.pandawork.util;import  org.apache.ibatis.io.Resources;import  org.apache.ibatis.session.SqlSessionFactory;import  org.apache.ibatis.session.SqlSessionFactoryBuilder;import  java.io.IOException;import  java.io.InputStream;public  class  ConnectDB  {    private  static  volatile  ConnectDB instance=null ;     private  SqlSessionFactory sqlSessionFactory=null ;     private  ConnectDB () {         try  {             String  resource  =  "mybatis-config.xml" ;             InputStream  inputStream  =  Resources.getResourceAsStream(resource);             sqlSessionFactory = new  SqlSessionFactoryBuilder ().build(inputStream);         } catch  (IOException e) {             e.printStackTrace();         }     }     public  static  ConnectDB getInstance () {         if (instance==null ){             synchronized (ConnectDB.class){                 if (instance==null ){                     instance=new  ConnectDB ();                 }             }         }         return  instance;     }     public  SqlSessionFactory getSqlSessionFactory () {         return  sqlSessionFactory;     } } 
5.4.  entity1、main/java文件夹下,右键com.voidking.pandawork,新建包entity。 2、右键包entity,新建类User.java。
5.5.  mapper1、main/java文件夹下,右键com.voidking.pandawork,新建包mapper。右键包mapper,新建接口UserMapper.java。 2、main/resources文件夹下,右键com.voidking.pandawork,新建包mapper。右键包mapper,新建文件user.mapper.xml。
5.6.  service1、main/java文件夹下,右键com.voidking.pandawork,新建包service。 2、右键包service,新建接口UserService.java。 3、右键包service,新建包impl。 4、打开UserService.java,鼠标光标聚焦到“public interface UserService”一行,按下alt+enter(或者选择code,generate),选择com.voidking.pandawork.service.impl包,新建接口实现文件UserServiceImpl.java。
5.7.  test打开UserServiceImpl.java,鼠标光标聚焦到“public class UserServiceImpl implements UserService”一行,按下alt+enter,选择com.voidking.pandawork包,新建测试文件UserServiceTest.java。这样,就在test/java/com.voidking.pandawork包中生成了测试文件。
6.  业务逻辑层6.1.  spring包在pom.xml中,添加springmvc最小化依赖:
1 2 3 4 5 6 7 8 9 10 11 <dependency >   <groupId > org.springframework</groupId >    <artifactId > spring-context</artifactId >    <version > 4.3.8.RELEASE</version >  </dependency > <dependency >   <groupId > org.springframework</groupId >    <artifactId > spring-webmvc</artifactId >    <version > $ {springframework.version} </version > </dependency > 
6.2.  applicationContext.xml右键main/resources文件夹,新建applicationContext.xml,不配置任何bean,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 <beans xmlns= "http://www.springframework.org/schema/beans"         xmlns: xsi= "http://www.w3.org/2001/XMLSchema-instance"  xmlns: aop= "http://www.springframework.org/schema/aop"         xmlns: context= "http://www.springframework.org/schema/context"  xmlns: tx= "http://www.springframework.org/schema/tx"         xsi: schemaLocation= "http://www.springframework.org/schema/beans                             http:                             http:                             http:                             http:                             http:                             http:                             http:  </beans> 
6.3.  springmvc-servlet.xml右键main/resources文件夹,新建springmvc-servlet.xml,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?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:mvc ="http://www.springframework.org/schema/mvc"         xmlns:context ="http://www.springframework.org/schema/context"         xmlns:aop ="http://www.springframework.org/schema/aop"         xmlns:tx ="http://www.springframework.org/schema/tx"         xsi:schemaLocation ="http://www.springframework.org/schema/beans                             http://www.springframework.org/schema/beans/spring-beans-4.0.xsd                            http://www.springframework.org/schema/mvc                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd                            http://www.springframework.org/schema/context                            http://www.springframework.org/schema/context/spring-context-4.0.xsd                            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" >         <context:component-scan  base-package ="com.voidking.pandawork.controller"  />  </beans > 
6.4.  web.xml打开main/webapp/WEB-INFO/web.xml,修改内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <?xml version="1.0"  encoding="UTF-8" ?> <web-app   version ="3.1"  xmlns ="http://xmlns.jcp.org/xml/ns/javaee"            xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"            xsi:schemaLocation ="http://xmlns.jcp.org/xml/ns/javaee                                http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" >  <context-param >      <param-name > contextConfigLocation</param-name >      <param-value > classpath:applicationContext.xml</param-value >         </context-param >    <listener >      <listener-class >        org.springframework.web.context.ContextLoaderListener     </listener-class >    </listener >    <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:springmvc-servlet.xml</param-value >             </init-param >      <load-on-startup > 1</load-on-startup >    </servlet >    <servlet-mapping >      <servlet-name > SpringMVC</servlet-name >      <url-pattern > /</url-pattern >    </servlet-mapping >  </web-app > 
6.5.  helloworld1、main/java文件夹下,右键com.voidking.pandawork,新建包controller。右键包controller,新建类HelloWorld.java,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 package  com.voidking.pandawork.controller;import  org.springframework.stereotype.Controller;import  org.springframework.web.bind.annotation .RequestMapping;import  org.springframework.web.bind.annotation .ResponseBody;@Controller public  class  HelloWorld  {    @RequestMapping("/hello" )      public  @ResponseBody  String test() {         return  "hello, world! This com from spring!" ;     } } 
2、部署项目到tomcat的8080端口,访问http://localhost:8080/hello,即可看到“hello, world! This com from spring!”。
7.  迷你JavaWeb项目实现具体配置和代码实现请自行阅读代码:pandawork-start 
8.  书签