Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)

本文详细讲述如何搭建一个Spring+SpringMVC+Maven+Mybatis+MySQL项目环境。
eclipse、maven 及 mysql的安装和配置在此不赘述,可参考这里。
本文demo源码可参考这里。
本文demo所用 Eclipse Java EE IDE 版本信息:

Eclipse Java EE IDE for Web Developers.

Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500

(c) Copyright Eclipse contributors and others 2000, 2017.  All rights reserved. Eclipse and the Eclipse logo are trademarks of the Eclipse Foundation, Inc., https://www.eclipse.org/. The Eclipse logo cannot be altered without Eclipse's permission. Eclipse logos are provided for use under the Eclipse logo and trademark guidelines, https://www.eclipse.org/logotm/. Oracle and Java are trademarks or registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

This product includes software developed by other open source projects including the Apache Software Foundation, https://www.apache.org/.

Maven 配置settings.xml(参考这里,这是一个非常好的 maven 配置,资源更新速度特别快...):







  
  E:\Repositories\Maven

  

  

  
  
    
  org.mortbay.jetty
  

  
  
    
  

  
  
    
    
    
  
    releases
    ali
    ali
    
    
    Snapshots
    ali
    ali
    
  

  
  
    
  
      
      nexus
      * 
      http://maven.aliyun.com/nexus/content/groups/public/
    
  
      
      nexus-public-snapshots
      public-snapshots 
      http://maven.aliyun.com/nexus/content/repositories/snapshots/
    
  
  
  
   
  
      development
      
        
          central
          http://central
          truealways
          truealways
        
      
     
        
          central
          http://central
          truealways
          truealways
        
      
    
    
      
      public-snapshots
      
        
          public-snapshots
          http://public-snapshots
          false
          truealways
        
      
     
        
          public-snapshots
          http://public-snapshots
          false
          truealways
        
      
    
  
 
   
    development
    public-snapshots
   

开始搭建项目:

1.mysql 数据库及表准备:

CREATE TABLE `T_USER` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_type` tinyint(4) DEFAULT NULL COMMENT '0、系统管理,1、业务管理员,2、普通操作员',
  `mobile` varchar(255) DEFAULT NULL COMMENT '管理员手机号',
  `is_biz_operator` tinyint(4) DEFAULT NULL COMMENT '是否业务操作员 0: 不是 1:是的',
  `is_sys_operator` tinyint(4) DEFAULT NULL COMMENT '是否系统操作员 0: 不是 1:是的',
  `login_name` varchar(255) NOT NULL COMMENT '员工后台管理账号',
  `real_name` varchar(100) DEFAULT NULL COMMENT '用户名',
  `password` varchar(255) NOT NULL COMMENT '员工后台管理密码',
  `status` tinyint(4) NOT NULL COMMENT '是否有效 0:无效  1:有效',
  `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
  `updator` bigint(20) DEFAULT NULL COMMENT '更新者',
  `create_date` datetime DEFAULT NULL COMMENT '创建日期',
  `update_date` datetime DEFAULT NULL COMMENT '更新日期',
  `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:没删除 1:删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_login_name` (`login_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8;

2.maven 工程创建
Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)_第1张图片
Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)_第2张图片
Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)_第3张图片
工程新建完成后,工程的目录结构如下:
Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)_第4张图片

3.编辑 pom.xml 文件,添加工程的包依赖


  4.0.0
  com.hy
  ssm001
  0.0.1-SNAPSHOT
  war
  
  
        
        3.2.8.RELEASE
        
        1.6.6
        1.2.12
        
        4.10
        
        3.2.1
  

  
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        

        
        
            junit
            junit
            ${junit.version}
            test
        

        
        
        
            log4j
            log4j
            ${log4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        

        
        
            org.springframework
            spring-test
            ${spring.version}
            test
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        

        
        
            org.mybatis
            mybatis-spring
            1.2.0
        

        
        
            mysql
            mysql-connector-java
            5.1.29
        
    
  

4.配置文件初始化。
分别初始化mybatis配置文件、数据库配置文件、Spring配置文件。
Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)_第5张图片

mybatis配置文件 mybatis-config.xml:

  
  
    

数据库配置文件 jdbc.properties:

jdbc_driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://192.168.8.*:3306/db_user
jdbc_username=*
jdbc_password=*

spring配置文件 application.xml:



     
       
     
        
            
               classpath:properties/*.properties
                
            
        
    
    
    

    
    
        
        
       
        
            ${jdbc_driverClassName}
        
        
            ${jdbc_url}
        
        
            ${jdbc_username}
        
        
            ${jdbc_password}
        
    

    
    
        
    

    
    
        
        
        
        
        
    

    
    


5.mybatis 反向生成代码
MyBatis属于一种半自动的ORM框架,由于手写Mapping映射文件很容易出错,所以可利用 MyBatis生成器 自动生成实体类、DAO接口和Mapping映射文件。有两种方式:

第一种方式:安装 eclipse mybatis generator 插件,使用该插件实现代码生成。
可参考这里。
第二种方式:直接用 mybatis-generator.jar 包的命令方式。
相关的jar包及命令可查看本demo源码:
Spring+SpringMVC+Maven+Mybatis+MySQL+Jetty项目搭建(1)_第6张图片
在本文的 demo 中使用了第二种方式。mybatis generator 配置文件generatorConfig.xm内容如下:

  
  
  
  
      
      
          
              
              
              
          
          
          
          
          
              
          
          
          
              
              
          
          
          
              
          
          
          
              
          
          
        
cd:G:\javaSpace\ssm001\src\main\resources\mybatis-generator
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

执行以上命令后,工程目录中生成了与 mybatis 相关的代码,主要有实体类、DAO接口和Mapping映射文件。

6.接口声明并实现接口
声明一个UserService接口:

package com.hy.service;

import com.hy.domain.User;

public interface UserService {
    User getUserById(Long id);
}

新建一个类 UserServiceImpl,并实现 UserService 接口 :

package com.hy.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.hy.dao.UserMapper;
import com.hy.domain.User;
import com.hy.service.UserService;

@Service
public class UserServiceImpl implements UserService{
    
    @Autowired  
    private UserMapper userMapper;
    
    public User getUserById(Long id) {
        return userMapper.selectByPrimaryKey(id);
    }

}

7.单元测试
单元测试是为了验证第6步中 UserService 接口的 getUserById 方法。
com.hy.baseTest 中新增类 SpringTestCase.java,使用 SpringJUnit4ClassRunner 实现单元测试:

package com.hy.baseTest;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


//指定bean注入的配置文件  
@ContextConfiguration(locations = { "classpath:application.xml" })  
//使用标准的JUnit @RunWith注释来告诉JUnit使用Spring TestRunner  
@RunWith(SpringJUnit4ClassRunner.class)  
public class SpringTestCase extends AbstractJUnit4SpringContextTests {

}

在 com.hy.test 中新增 UserServiceTest 类文件:

package com.hy.test;

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.hy.baseTest.SpringTestCase;
import com.hy.domain.User;
import com.hy.service.UserService;

public class UserServiceTest extends SpringTestCase {

    @Autowired  
    private UserService userService; 

    @Test  
    public void selectUserByIdTest(){  
        User user = userService.getUserById((long) 1);
        System.out.println("userLoginName:" + user.getLoginName());
    }  
}

运行单元测试:UserServiceTest 右键 Run As –>Junit Test, 运行结果:

log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
userLoginName:admin

到此,我们已经搭建了一个基于 Spring+Maven+Mybatis+Mysql 的项目环境。文中使用了很多Spring相关的技术,如自动注入注解@Service、@Autowired,以及Spring配置文件,这些知识可参考:
http://www.cnblogs.com/szlbm/...

你可能感兴趣的:(java,spring-mvc,maven,mysql,mybatis)