---
layout: post
title: 从零开始搭建spring-springmvc-mybatis-mysql和dubbo项目
category: 技术
tags: Spring
keywords:
description:
---
{:toc}
## 一.准备开发环境
### 1.工具软件
JDK1.7+,Eclipse J2EE 最新版,mysql5.6,maven3.x,tomcat7+等必须软件
### 2.搭建maven项目开发环境
### **[Eclipse从零配置Maven环境 笔记](http://blog.csdn.net/kisssun0608/article/details/45437621)**
现在搭建好的空的maven项目是这样的:
![这里写图片描述](http://img.blog.csdn.net/20160123184047072)
## 二.添加项目配置
### 1.配置项目的pom文件
内容如下:
```XML
4.0.0
cn.jingzz.test
Demo
0.0.1
4.2.1.RELEASE
1.8.0.RELEASE
3.2.6
1.2.0
5.1.29
10.2.0.4.0
2.5
2.2
1.2
1.1.39
2.0
2.2
1.1.3
2.4
3.3.1
1.2.1
1.2.17
1.7.6
1.6.1
1.0.17
1.2.3
1.7.4
0.8.0.RELEASE
1.0.4
0.9.2.1
6.8.8
4.11
5.3.7
4.2
3.1
3.15.0-GA
3.7.0.Final
1.1.7
2.1.4
4.2.1
1.1.39
3.1
0.8
3.4.6
0.1
2.5.0
2.1.0
1.3.6
2.6.1
3.1.0
6.1.26
1.0.0.GA
0.4
2.0-M5.1
3.0
2.2
3.0.8
2.3.3
1.6
2.8.5
UTF-8
1.7
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-orm
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.mongodb
mongo-java-driver
2.13.0
org.springframework.data
spring-data-commons
1.11.0.RELEASE
org.springframework.data
spring-data-mongodb
${mongo.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring-version}
com.mchange
c3p0
${c3p0.version}
mysql
mysql-connector-java
${mysql.version}
commons-logging
commons-logging
${commons-logging.version}
log4j
log4j
${log4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.slf4j
slf4j-api
${slf4j.version}
javax.servlet
servlet-api
${servlet-api.version}
provided
javax.servlet.jsp
jsp-api
${jsp-api.version}
provided
javax.servlet
jstl
${jstl.version}
compile
org.springframework
spring-test
${spring.version}
junit
junit
${junit.version}
org.testng
testng
${testng.version}
org.apache.commons
commons-dbcp2
${commons-dbcp2.version}
org.apache.commons
commons-pool2
${commons-pool2.version}
commons-io
commons-io
${commons-io.version}
org.apache.commons
commons-lang3
${commons-lang3.version}
org.apache.commons
commons-proxy
1.0
org.apache.commons
commons-jexl
2.1.1
org.apache.commons
commons-exec
1.2
org.apache.commons
commons-compress
1.8
org.apache.commons
commons-daemon
1.0.9
org.apache.commons
commons-email
1.3.2
org.apache.commons
commons-math
2.2
org.apache.commons
commons-collections4
4.0
org.kuali.commons
commons-beanutils
1.8.3-kuali-4
commons-dbutils
commons-dbutils
1.5
org.apache.httpcomponents
httpcore
4.3.2
org.apache.httpcomponents
httpmime
4.3.3
org.apache.httpcomponents
httpcore-nio
4.3.2
com.alibaba
fastjson
${fastjson.version}
org.aspectj
aspectjweaver
${aspectjweaver.version}
dom4j
dom4j
${dom4j.version}
net.sourceforge.htmlunit
htmlunit
2.14
net.sourceforge.jwebunit
jwebunit-htmlunit-plugin
3.2
xml-apis
xml-apis
1.4.01
com.alibaba
dubbo
${dubbo.version}
org.javassist
javassist
${javassist_version}
io.netty
netty
${netty_version}
org.apache.mina
mina-core
${mina_version}
org.glassfish.grizzly
grizzly-core
${grizzly_version}
org.apache.httpcomponents
httpclient
${httpclient_version}
com.alibaba
fastjson
${fastjson_version}
org.apache.bsf
bsf-api
${bsf_version}
org.apache.zookeeper
zookeeper
${zookeeper_version}
com.github.sgroschupf
zkclient
${zkclient_version}
org.apache.curator
curator-framework
${curator_version}
com.googlecode.xmemcached
xmemcached
${xmemcached_version}
org.apache.cxf
cxf-rt-frontend-simple
${cxf_version}
org.apache.cxf
cxf-rt-transports-http
${cxf_version}
javax.servlet
javax.servlet-api
${servlet_version}
javax.validation
validation-api
${validation_version}
javax.cache
cache-api
${jcache_version}
org.jboss.resteasy
resteasy-jaxrs
3.0.7.Final
org.jboss.resteasy
resteasy-client
3.0.7.Final
org.jboss.resteasy
resteasy-netty
3.0.7.Final
org.jboss.resteasy
resteasy-jdk-http
3.0.7.Final
org.jboss.resteasy
resteasy-jackson-provider
3.0.7.Final
org.jboss.resteasy
resteasy-jaxb-provider
3.0.7.Final
com.esotericsoftware.kryo
kryo
2.24.0
de.javakaffee
kryo-serializers
0.26
de.ruedigermoeller
fst
1.55
commons-fileupload
commons-fileupload
${commons-fileupload.version}
junit
junit
3.8.1
test
org.apache.kafka
kafka_2.10
0.9.0.0
com.xxx.yyy.sns.im
im_phosvr_api
0.0.1-SNAPSHOT
src/main/java
maven-compiler-plugin
3.1
1.7
maven-war-plugin
2.4
src/main/webapp
false
src/main/resources/META-INF
true
META-INF
src/main/resources
true
**/*.xml
**/*.properties
${project.build.directory}/classes
resource
true
*.xml
${project.build.directory}/classes
resource
true
*.properties
${project.build.directory}/classes
```
### 2.配置web项目的最根本文件web.xml
内容如下:
```XML
demo
contextConfigLocation
/WEB-INF/classes/applicationContext.xml
log4jConfigLocation
/WEB-INF/classes/log4j.properties
springMVC
org.springframework.web.servlet.DispatcherServlet
1
springMVC
/
org.springframework.web.context.ContextLoaderListener
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
404
/jsps/error_404.jsp
```
### 3.根据web.xml的加载创建并配置spring,log配置文件
其他配置文件一般放置在src/main/resources下
spring配置文件:applicationContext.xml
日志配置文件:log4j.properties
### 4.根据applicationContext.xml的加载创建并配置jdbc.properties,conf.properties等属性文件和applicationMybatis.xml,dubbo-consumer.xml等配置文件
jdbc配置文件:
```bash
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test?characterEncoding=utf-8
jdbc.username=root
jdbc.password=xxx
```
其他自定义配置文件:
mybatis配置文件:
**添加了druid数据库及监控**
```xml
com.xxx.worktime.service.*.*Service.*
```
dubbo-consumer配置文件:
```xml
```
dubbo-provider配置文件:
```xml
```
log4j配置文件:
```shell
log4j.rootLogger=INFO, stdout
#Console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n
#LogFile
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=../logs/jklog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n
#Daily LogFile
log4j.appender.dayfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dayfile.File=../logs/jklog.log
log4j.appender.dayfile.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.dayfile.Append=true
log4j.appender.dayfile.layout=org.apache.log4j.PatternLayout
log4j.appender.dayfile.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.logindb.layout=org.apache.log4j.PatternLayout
log4j.logger.org.apache=INFO
log4j.logger.com.mchange=INFO
log4j.logger.org.springframework=INFO
log4j.logger.org.apache.ibatis=INFO
log4j.logger.org.mybatis.spring=INFO
com.xxx.sns.imworkbench.dao.mybatis=INFO
```
### 5.配置springmvc配置文件
因为没有在web.xml中加载,因此使用默认springmvc的设置名称和位置,为WEB-INF/springMVC-servlet.xml文件。
springmvc配置文件内容:
```xml
```