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项目管理的优势)

查找依赖结构有个不错的网站,   只要输入包名即可查找引来关系

pom.xml(包依赖)


4.0.0
eyas.springmvc
springmvc
war
0.0.1-SNAPSHOT
springmvc Maven Webapp
http://maven.apache.org
3.2.4.RELEASE
3.2.4
1.6.6
1.2.9
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
mysql
mysql-connector-java
5.1.29
junit
junit
4.11
test
com.alibaba
druid
1.0.2
org.codehaus.jackson
jackson-mapper-asl
1.9.13
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
springmvc


3. 配置数据库连接属性

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

jdbc_driverClassName=com.mysql.jdbc.Driverjdbc_url=jdbc:mysql://localhost:3306/mydays?useUnicode=true&characterEncoding=utf-8jdbc_username=rootjdbc_password=root

4.  配置spring配置文件

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


    
    
        
    

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

    
    
      
${jdbc_driverClassName}
        
      
${jdbc_url}
        
      
${jdbc_username}
        
      
${jdbc_password}
        
    
      
20
        
    
      
1
        
    
      
60000
        
    
      
20
        
    
      
3
        
    
      
true
        
    
      
180
        
    
      
clientEncoding=UTF-8
              
      
         
 
    
  

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

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


package cn.springmvc.model;/** * 用户表 */public class User {	private int id;	private int state;	private String nickname;	public int getId() {		return id;	}	public void setId(int id) {		this.id = id;	}	public int getState() {		return state;	}	public void setState(int state) {		this.state = state;	}	public String getNickname() {		return nickname;	}	public void setNickname(String nickname) {		this.nickname = nickname;	}}



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



package cn.springmvc.dao;import cn.springmvc.model.User;public interface UserDAO {	/**	 * 添加新用户	 * @param user	 * @return	 */	public int insertUser(User user);		}

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


package cn.springmvc.service;import cn.springmvc.model.User;public interface UserService {	public int insertUser(User user);}



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




package cn.springmvc.service.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import cn.springmvc.dao.UserDAO;import cn.springmvc.model.User;import cn.springmvc.service.UserService;@Servicepublic class UserServiceImpl implements UserService{	@Autowired	private UserDAO userDAO;		@Override	public int insertUser(User user) {		// TODO Auto-generated method stub		return userDAO.insertUser(user);	}}



6.  mybatis配置


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


        
    
         
     
    
    
    



mapper/UserMapper.xml(mybatis的实现)



                    
             insert into days_user(           state,         nickname)          values          (                 #{state},         #{nickname})                  



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


7.  junit测试插入功能


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

package cn.springmvc.test;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.springmvc.model.User;import cn.springmvc.service.UserService;public class UserTest {private UserService userService;		@Before	public void before(){                                                                    		@SuppressWarnings("resource")		ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"classpath:conf/spring.xml"				,"classpath:conf/spring-mybatis.xml"});		userService = (UserService) context.getBean("userServiceImpl");	}		@Test	public void addUser(){		User user = new User();		user.setNickname("你好");		user.setState(2);		System.out.println(userService.insertUser(user));	}}



测试结果如图:


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

即完成插入功能!

8.  springMVC模块搭建 

    web.xml(web功能配置)

Archetype Created Web Application
contextConfigLocation
classpath:conf/spring.xml; classpath:conf/spring-mybatis.xml
webAppRootKey
springmvc.root
SpringEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
SpringEncodingFilter
/*
log4jConfigLocation
classpath:conf/log4j.properties
log4jRefreshInterval
6000
org.springframework.web.util.Log4jConfigListener
org.springframework.web.context.ContextLoaderListener
spring
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:conf/spring-mvc.xml
2
spring
*.do
index.jsp
404
/WEB-INF/errorpage/404.jsp
405
/WEB-INF/errorpage/405.jsp
500
/WEB-INF/errorpage/500.jsp



conf/spring-mvc.xml(mvc配置文件)

        
   
      
   
text/html;charset=UTF-8
   
     



9.  log4j日志记录搭建


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

 ### set log levels ####log4j.rootLogger = debug , stdout , D , Elog4j.rootLogger = debug , stdout , D###  output to the console ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayout#log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%nlog4j.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.DailyRollingFileAppenderlog4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.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.DailyRollingFileAppenderlog4j.appender.D.File = ${springmvc.root}/WEB-INF/logs/error.log log4j.appender.D.Append = truelog4j.appender.D.Threshold = ERROR log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n



10.  测试运行

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


<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here

欢迎你!!!



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

package cn.springmvc.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/")public class UserController {	@RequestMapping("index")	public String index(){		return "index";	}	}
 
  • 核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 

    1.     项目核心代码结构截图

    分布式框架介绍 - kafkaee - kafkaee的博客

       项目模块依赖

    分布式框架介绍 - kafkaee - kafkaee的博客

    特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化

    2.    项目依赖介绍

       2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:

     

    分布式框架介绍 - kafkaee - kafkaee的博客

           2.2 Dubbo独立服务项目依赖如下图:

     分布式框架介绍 - kafkaee - kafkaee的博客

    3.  项目功能部分截图:

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

    zookeeper、dubbo服务启动 

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

    dubbo管控台 

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     REST服务平台

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客

     

    分布式框架介绍 - kafkaee - kafkaee的博客