您的位置:首页 > 编程语言 > Java开发

spring + springmvc +mybatis 搭建 maven 项目的核心配置文件

2017-02-05 10:37 573 查看
首先我们来简单看看我们的目录结构






那么我们简单说下这个项目:这是我们做过的电商项目所以名字为ddbuy

src/main/java :编写主要代码

core:为核心代码,只要分为

1.pageModel:分页模型,所有实体类的基类

package com.weshop.core.dao.page;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import com.weshop.core.StaticKey;

/**
* PagerModel.java
* @description: 分页模型,所有实体类的基类
* @author
* @date 2015-11-10
* @version 0.0.1
*/
public class PageModel implements ClearBean {
private int total; // 总数
//private List list = new ArrayList(); // 分页集合列表
private List list ; // 分页集合列表
private int pageSize = StaticKey.PAGE_SIZE;// 每页显示记录数
private int offset=0; // 偏移量
private int pagerSize;// 总页数
protected String pagerUrl;//分页标签需要访问的ACTION地址
private String id;
private int recordsTotal;
private int recordsFiltered;
private int draw;

public String getPagerUrl() {
return pagerUrl;
}

public void setPagerUrl(String pagerUrl) {
this.pagerUrl = pagerUrl;
}

public int getPagerSize() {
return pagerSize;
}

public void setPagerSize(int pagerSize) {
this.pagerSize = pagerSize;
}

public int getOffset() {
return offset;
}

public void setOffset(int offset) {
this.offset = offset;
}

public int getPageSize() {
return pageSize;
}

public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}

public int getTotal() {
return total;
}

public void setTotal(int total) {
this.total = total;
pagerSize =total/pageSize+(total%pageSize==0?0:1);
}

public List getList() {
return list == null ? new LinkedList() : list;
}

public void setList(List list) {
this.list = list;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

/*
* (non-Javadoc)
*
* @see net.jeeshop.common.page.ClearBean#clear()
*/
@Override
public void clear() {
total = 0; // 总数
list = null; // 分页集合列表
offset = 0; // 偏移量
pagerSize = 0;// 总页数
// pagerUrl = null;//分页标签需要访问的ACTION地址
recordsTotal = 0;
id = null;
}

public int getRecordsTotal() {
return recordsTotal;
}

public void setRecordsTotal(int recordsTotal) {
this.recordsTotal = recordsTotal;
}

public int getRecordsFiltered() {
return recordsFiltered;
}

public void setRecordsFiltered(int recordsFiltered) {
this.recordsFiltered = recordsFiltered;
}

public int getDraw() {
return draw;
}

public void setDraw(int draw) {
this.draw = draw;
}

public String trim(String str){
if(str==null){
return null;
}
return str.trim();
}

public void clearList(List<String> list){
if(list==null || list.size()==0){
return;
}
list.clear();
list = null;
}

public void clearSet(Set<String> set){
if(set==null || set.size()==0){
return;
}
set.clear();
set = null;
}

public void clearListBean(List<PageModel> list){
if(list==null || list.size()==0){
return;
}
for(int i=0;i<list.size();i++){
ClearBean item = list.get(i);
item.clear();
item = null;
}
list.clear();
list = null;
}

public void clearArray(String[] arr){
if(arr==null || arr.length==0){
return;
}
for(int i=0;i<arr.length;i++){
arr[i] = null;
}
arr = null;
}

@Override
public String toString() {
return "total:"+total+",list:"+list+",offset:"+offset;
}
}
2. BaseDao (mybatis最基本的数据操作,SqlSessionFactory 重新注入)
package com.weshop.core.dao;

import java.util.List;

import org.apache.ibatis.exceptions.IbatisException;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.weshop.core.dao.page.PageModel;
import com.weshop.core.exception.PrivilegeException;

/**
* BaseDao.java
* @description: mybatis最基本的数据操作,SqlSessionFactory 重新注入
* @author
* @date 2015-11-10
* @version 0.0.1
*/
@Repository
public class BaseDao extends SqlSessionDaoSupport {

protected static final org.slf4j.Logger log = LoggerFactory.getLogger(BaseDao.class);

private static final boolean selectPrivilege = false;

/**
* 打开session,mybatis中的session能进行数据库基本的操作
*
* @return
*/
public SqlSession openSession() {
try {
SqlSession session = getSqlSession();
return session;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

/**
* 查询一条记录
*
* @param arg0
* @return
*/
public Object selectOne(String arg0) {
SqlSession session = openSession();
return session.selectOne(arg0);
}

/**
* 查询一条记录
*
* @param arg0
* @param arg1
* @return
*/
public Object selectOne(String arg0, Object arg1) {
SqlSession session = openSession();
return session.selectOne(arg0, arg1);
}

/**
* 分页查询
*
* @param selectList
* @param selectCount
* @param param
* @return
*/
public PageModel selectPageList(String selectList, String selectCount,
Object param) {
SqlSession session = openSession();
List list = session.selectList(selectList, param);
PageModel pm = new PageModel();
pm.setList(list);
Object oneC = session.selectOne(selectCount, param);
if(oneC!=null){
pm.setTotal(Integer.parseInt(oneC.toString()));
}else{
pm.setTotal(0);
}

return pm;
}

/**
* 查询多条记录
*
* @param arg0
* @return
*/
public List selectList(String arg0) {
SqlSession session = openSession();
return session.selectList(arg0);
}

/**
* 查询多条记录
*
* @param arg0
* @param arg1
* @return
*/
public List selectList(String arg0, Object arg1) {
SqlSession session = openSession();
return session.selectList(arg0, arg1);
}

/**
* 查询总数
*
* @param arg0
* @param arg1
* @return
*/
public int getCount(String arg0, Object arg1) {
SqlSession session = openSession();
return (Integer) session.selectOne(arg0, arg1);
}

/**
* 插入一条记录
*
* @param arg0
* @return
*/
public int insert(String arg0) {
if(selectPrivilege){
throw new PrivilegeException("只具备查询的权限!");
}
SqlSession session = openSession();
return session.insert(arg0);
}

/**
* 插入一条记录,成功则返回插入的ID;失败则抛出异常
* 更改,不需要再返回插入的id;
* @param arg0
* @param arg1
* @return
*/
public int insert(String arg0, Object arg1) {
if(selectPrivilege){
throw new PrivilegeException("只具备查询的权限!");
}
SqlSession session = openSession();
int row = session.insert(arg0, arg1);
if(row==1){
//return Integer.valueOf(((PageModel)arg1).getId());
return 1;
}
//throw new IbatisException();
return row;
}

/**
* 更新一条记录
*
* @param arg0
* @return
*/
public int update(String arg0) {
if(selectPrivilege){
throw new PrivilegeException("只具备查询的权限!");
}
SqlSession session = openSession();
return session.update(arg0);
}

/**
* 更新一条记录
*
* @param arg0
* @param arg1
* @return
*/
public int update(String arg0, Object arg1) {
if(selectPrivilege){
throw new PrivilegeException("只具备查询的权限!");
}
SqlSession session = openSession();
int row = session.update(arg0, arg1);
// if(row==1){
// if(arg1 instanceof PageModel){
//// return Integer.valueOf(((PagerModel)arg1).getId());
// String obj = ((PageModel)arg1).getId();
// if(obj==null){
// return 0;
// }
// return Integer.valueOf(obj);
// }
// }
return row;
}

/**
* 删除一条记录
*
* @param arg0
* @return
*/
public int delete(String arg0) {
if(selectPrivilege){
throw new PrivilegeException("只具备查询的权限!");
}
SqlSession session = openSession();
return session.delete(arg0);
}

/**
* 删除一条记录
*
* @param arg0
* @param arg1
* @return
*/
public int delete(String arg0, Object arg1) {
if(selectPrivilege){
throw new PrivilegeException("只具备查询的权限!");
}
SqlSession session = openSession();
return session.delete(arg0, arg1);
}

@Override
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
super.setSqlSessionFactory(sqlSessionFactory);
}

}


3.DaoManager (这是Dao的interface继承这个实现类<传入对应的bean继承 PageModel 分页>在Daoimpl去implements(实现)Dao 的 DaoManager  ,在Dao里面重写DaoManager  里面的方法    调用上面所写BaseDao方法与数据库建议连接实现“增删改查”功能 )
package com.weshop.core;

import java.util.List;

import com.weshop.core.dao.page.PageModel;

/**
* DaoManager.java
* @description:
* @author
* @date 2015-11-10
* @version
* @param <E>
*/
public interface DaoManager<E extends PageModel> {
/**
* 添加
*
* @param e
* @return
*/
public int insert(E e);

/**
* 删除
*
* @param e
* @return
*/
public int delete(E e);

/**
* 修改
*
* @param e
* @return
*/
public int update(E e);

/**
* 查询一条记录
*
* @param e
* @return
*/
public E selectOne(E e);

/**
* 分页查询
*
* @param e
* @return
*/
public PageModel selectPageList(E e);

/**
* 根据条件查询所有
* @return
*/
public List<E> selectList(E e);

/**
* 根据ID来删除一条记录
* @param id
*/
public int deleteById(int id);

/**
* 根据ID查询一条记录
* @param id
* @return
*/
public E selectById(String id);
}
4.PrivilegeUtil(检查用户是否有指定权限)
package com.weshop.core;

import java.util.Map;

import javax.servlet.http.HttpSession;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.weshop.core.exception.PrivilegeException;
import com.weshop.service.bean.Member;

/**
* PrivilegeUtil.java
* @description: 权限检查
* @author
* @date 2015-11-19
* @version 0.0.1
*/
public class PrivilegeUtil {
private static final Logger logger = LoggerFactory.getLogger(PrivilegeUtil.class);

/**
* 检查用户是否具有指定的权限
*
* @param session
* 用户session
* @param pName
* 权限名称
* @return true:有权限,false:没有权限
*/
public static boolean check(HttpSession session, String pName) throws PrivilegeException{
// if(1==1){
// return true;
// }
//

Map<String,String> root = (Map<String,String>) session.getAttribute(StaticKey.user_resource_menus_button);
if(root==null || root.size()==0){
logger.error("该用户没有任何权限。没有权限访问该资源!");
return false;
}
Member u = (Member) session.getAttribute(StaticKey.manage_session_user_info);
if(u==null){
throw new PrivilegeException("用户未登陆!");
}
logger.error("==PrivilegeUtil.check : pName="+pName+"root:"+root.toString());
if(root.get(pName)==null){
logger.error("抱歉,没有权限访问该资源!");
return false;
}
logger.error("有权限访问该资源!");
return true;
}
}


5.Service (该接口提供业务逻辑最基本的服务,所有的业逻辑类都必须实现此接口,这样该业务逻辑类对应的action就免去了写基本selectList、insert、update、toEdit、deletes)
package com.weshop.core;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.weshop.core.dao.page.PageModel;

/**
* Service.java
* @description: 该接口提供业务逻辑最基本的服务,所有的业逻辑类都必须实现此接口,这样该业务逻辑类对应
* 的action就免去了写基本selectList、insert、update、toEdit、deletes
* @author
* @date 2015-11-10
* @version
* @param <E>
*/
public interface Service<E extends PageModel> {

/**
* 添加
*
* @param e
* @return
*/
@Transactional
public int insert(E e);

/**
* 删除
*
* @param e
* @return
*/
@Transactional
public int delete(E e);

/**
* 批量删除
*
* @param ids
* @return
*/
@Transactional
public int deletes(String[] ids);

/**
* 修改
*
* @param e
* @return
*/
@Transactional
public int update(E e);

/**
* 查询一条记录
*
* @param e
* @return
*/
public E selectOne(E e);

/**
* 根据ID查询一条记录
*
* @param e
* @return
*/
public E selectById(String id);

/**
* 分页查询
*
* @param e
* @return
*/
public PageModel selectPageList(E e);

/**
* 根据条件查询所有
* @return
*/
public List<E> selectList(E e);
}

6.ServerManager (Serviceimpl继承)

package com.weshop.core;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import com.weshop.core.dao.page.PageModel;

/**
* ServerManager.java
* @description:
* @author
* @date 2015-11-10
* @version 0.0.1
* @param <E>
* @param <DAO>
*/
public abstract class ServerManager<E extends PageModel, DAO extends DaoManager<E>> implements Service<E>{

@Autowired
protected SystemManager systemManager;
protected DAO dao;

public DAO getDao() {
return dao;
}

public abstract void setDao(DAO dao);

/**
* 添加
*
* @param e
* @return
*/
@Override
public int insert(E e) {
if(e==null){
throw new NullPointerException();
}
return dao.insert(e);
}

/**
* 批量添加
*
* @param e
* @return
*/
// public void insertList(List<E> list) {
// if(list==null)
// throw new NullPointerException();
//
// for(int i=0;i<list.size();i++){
// dao.insert(list.get(i));
// }
// }

/**
* 删除
*
* @param e
* @return
*/
@Override
public int delete(E e) {
if(e==null){
throw new NullPointerException();
}
return dao.delete(e);
}

/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public int deletes(String[] ids) {
if (ids == null || ids.length == 0) {
throw new NullPointerException("id不能全为空!");
}

for (int i = 0; i < ids.length; i++) {
if(StringUtils.isBlank(ids[i])){
throw new NullPointerException("id不能为空!");
}
dao.deleteById(Integer.parseInt(ids[i]));
}
return 0;
}

/**
* 修改
*
* @param e
* @return
*/
@Override
public int update(E e) {
if(e==null){
throw new NullPointerException();
}
return dao.update(e);
}

/**
* 查询一条记录
*
* @param e
* @return
*/
@Override
public E selectOne(E e) {
return dao.selectOne(e);
}

/**
* 分页查询
*
* @param e
* @return
*/
@Override
public PageModel selectPageList(E e) {
return dao.selectPageList(e);
}

@Override
public List<E> selectList(E e) {
return dao.selectList(e);
}

@Override
public E selectById(String id) {
return dao.selectById(id);
}
}


7.Util (里面分装了java.utils 的方法,分别有上次下载文件,图片,正则验证,时间转换,字符串转换等等工具类)

Service:主要是Bean  Dao以及Daoimpl 和 Service以及Serviceimpl 

Web: 这里是Controller  (控制器 ,接受请求处理业务逻辑和返回结果)

java/main/resources 是存放配置文件

createindex.xml 文件配置<?xml version="1.0" encoding="UTF-8" ?>
<database url="jdbc:mysql://localhost:3306/test"
user="root" password="123456"
JDBC_DRIVER="com.mysql.jdbc.Driver">
<table name="product_test">
<fields indexbool="false">
<index></index>
<content>name</content>
<id>ID</id>
</fields>
</table>
<table name="users">
<fields indexbool="false">
<index></index>
<content>name</content>
<id>id</id>
</fields>
</table>
</database>
ehcache.xml 文件配置

<ehcache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">

<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="20000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
<cache name="eternalCache"
maxElementsInMemory="20000"
eternal="true"
overflowToDisk="true"
diskPersistent="false"
timeToLiveSeconds="0"
diskExpiryThreadIntervalSeconds="120"
/>
</ehcache>
jdbc.propertis 文件配置

driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://192.168.3.1\:3306/ddbuy_code?allowMultiQueries\=true
username=root
password=123456
#定义初始化连接数
initialSize=5
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=5
#定义最长等待时间
maxWait=200000
loge4j.propertis 文件配置

#定义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
pring-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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
<context:component-scan base-package="com.weshop.web.controller" />
<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<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.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<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>

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.weshop.core.interceptor.TokenInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

</beans>
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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描 -->
<context:component-scan base-package="com.weshop" />
<bean id="systemManager" class="com.weshop.core.SystemManager">
<property name="cacheProvider" ref="ehcacheCacheProvider"/>
</bean>
<bean id="ehcacheCacheProvider" class="com.weshop.core.cache.EhcacheCacheProvider">
<property name="configLocation" value="classpath:config/ehcache.xml"></property>
<property name="cacheName" value="eternalCache"/>
</bean>
<!-- 引入配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:config/jdbc.properties" />
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${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>
<property name="validationQuery" value="SELECT 1"></property>
<property name="testWhileIdle" value="true"></property>
<property name="testOnBorrow" value="true"></property>
<property name="timeBetweenEvictionRunsMillis" value="3600000"></property>
<property name="numTestsPerEvictionRun" value="50"></property>
<property name="minEvictableIdleTimeMillis" value="120000"></property>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="60000000"/>
</bean>

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:mapping/*.xml"></property>
</bean>

<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.weshop.core.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>

<context:annotation-config></context:annotation-config>
<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

generatorConfig.xml 文件配置 (通过Maven生成bean dao 和 xml 文件)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
<!--数据库驱动jar -->
<classPathEntry location="E:\mysql-connector-java-5.0.8.jar" />

<context id="DB2Tables" targetRuntime="MyBatis3">
<!--去除注释 -->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
</commentGenerator>

<!--数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.1.111:3306/ddbuy_code" userId="root"
password="123456">
</jdbcConnection>
<!--默认false Java type resolver will always use java.math.BigDecimal if
the database column is of type DECIMAL or NUMERIC. -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建 使用Maven生成在target目录下,会自动创建) -->

<javaModelGenerator targetPackage="com.weshop.service.bean"
targetProject="MAVEN">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成SQLMAP文件 -->
<sqlMapGenerator targetPackage="com.weshop.mapping"
targetProject="MAVEN">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现 context id="DB2Tables" 修改targetRuntime="MyBatis3" -->
<!-- <javaClientGenerator type="SPRING" targetPackage="com.qianyan.persistence.dao"
targetProject="MAVEN"> -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.weshop.service.dao" targetProject="MAVEN">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>

<!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等 -->
<!-- <table tableName="WS_AREA" domainObjectName="Area"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ATTENTION" domainObjectName="Attention"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ATTRIBUTE_GROUP" domainObjectName="AttributeGroup"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ATTRIBUTE_ITEM" domainObjectName="AttributeItem"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ATTRIBUTE_VALUE" domainObjectName="AttributeValue"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ATTRIBUTE_SET" domainObjectName="AttributeSet"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_BANK_INFO" domainObjectName="BankInfo"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_BRAND" domainObjectName="Brand"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_CUSTOMER_SERVICE" domainObjectName="CustomerService"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_COUPON" domainObjectName="Coupon"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_COUPON_USE" domainObjectName="CouponUse"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_EXPRESS_INFO" domainObjectName="ExpressInfo"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_EVALUATE" domainObjectName="Evaluate"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_EXPRESS_COMPANY" domainObjectName="ExpressCompany"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_FEEDBACK" domainObjectName="Feedback"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_GRADE_RIGHT" domainObjectName="GradeRight"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_LOGISTICS_SERVICE" domainObjectName="LogisticsService"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_MEMBER" domainObjectName="Member"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_MERCHANT" domainObjectName="Merchant"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_MEMBER_GRADE" domainObjectName="MemberGrade"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_MESSAGE" domainObjectName="Message"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ORDER" domainObjectName="Order"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ORDER_PRODUCT" domainObjectName="OrderProduct"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_OPERATOR" domainObjectName="Operator"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_POST" domainObjectName="Post"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_PRODUCT" domainObjectName="Product"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_PAYMENT" domainObjectName="Payment"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_PLATFORM_FUNCTION" domainObjectName="PaymentBank"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_PRODUCT_CATEGORY" domainObjectName="ProductCategory"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_PRODUCT_PARAM" domainObjectName="ProductParam"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_REFUND" domainObjectName="Refund"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_REPORT_PRODUCT" domainObjectName="ReportProduct"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ROLE" domainObjectName="Role"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_ROLE_RIGHT" domainObjectName="RoleRight"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SERVICE_CODE" domainObjectName="ServiceCode"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SKU_MAIN_EIGENVALUE" domainObjectName="SkuMainEigenvalue"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SKU_STOCK" domainObjectName="SkuStock"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SHOP_CATEGORY" domainObjectName="ShopCateGory"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_STORAGE" domainObjectName="Storage"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SHOP" domainObjectName="Shop"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SHOPPING_CART" domainObjectName="ShoppingCart"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_SCORE" domainObjectName="Score"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" /> -->

<!-- <table tableName="WS_BASIC_INFO" domainObjectName="BasicInfo"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_COMPLAINT" domainObjectName="complanint"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_MESSAGE" domainObjectName="Message"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

<table tableName="WS_USER_SETTING" domainObjectName="UserSetting"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />-->

<table tableName="WS_PRODUCT_ATTRIB" domainObjectName="ProductAttrib"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" />

</context>
</generatorConfiguration>
pom.xml 文件配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>ddbuy</groupId>
<artifactId>ddbuy</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name />
<build>
<finalName>ddbuy</finalName>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

<properties>

<spring.version>4.0.2.RELEASE</spring.version>
<!--<struts.version>2.3.16.3</struts.version> -->
<javassist.version>3.11.0.GA</javassist.version>

<aspectj.version>1.5.3</aspectj.version>
<aopalliance.version>1.0</aopalliance.version>
<asm.version>3.2</asm.version>
<cglib.version>2.2.2</cglib.version>
<jackson.version>1.9.13</jackson.version>
<freemarker.version>2.3.16</freemarker.version>

<mybatis.version>3.2.6</mybatis.version>
<mybatis-spring.version>1.2.2</mybatis-spring.version>
<spring-data-redis.version>1.4.2.RELEASE</spring-data-redis.version>
<jedis.version>2.6.0</jedis.version>
<mysql-jdbc.version>5.0.8</mysql-jdbc.version>
<slf4j.version>1.6.1</slf4j.version>
<logback.version>1.1.2</logback.version>
<json-lib.version>2.4</json-lib.version>
<fastjson.version>1.1.33</fastjson.version>
<jdom.version>1.1</jdom.version>

<ezmorph.version>1.0.6</ezmorph.version>
<p6spy.version>1.3</p6spy.version>
<dom4j.version>1.6.1</dom4j.version>
<urlrewrite.version>4.0.4</urlrewrite.version>
<javamail.version>1.4</javamail.version>
<pinyin4j.version>2.5.0</pinyin4j.version>
<lucene.version>3.3.0</lucene.version>

<c3p0.version>0.9.5</c3p0.version>
<aliyun-openservices.version>1.0.12</aliyun-openservices.version>
<druid.version>0.2.3</druid.version>

<commons-lang.version>2.5</commons-lang.version>
<commons-io.version>2.2</commons-io.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-beanutils.version>1.8.0</commons-beanutils.version>
<commons-chain.version>1.2</commons-chain.version>
<commons-collections.version>3.1</commons-collections.version>
<commons-digester.version>2.0</commons-digester.version>
<commons-lang3.version>3.1</commons-lang3.version>
<commons-validator.version>1.3.1</commons-validator.version>
<commons-logging.version>1.1.3</commons-logging.version>
<commons-codec.version>1.6</commons-codec.version>
<commons-httpclient.version>3.0.1</commons-httpclient.version>

<htmlparser.version>2.1</htmlparser.version>

<httpclient.version>4.2</httpclient.version>
<jaxen.version>1.1.1</jaxen.version>

<activation.version>1.1</activation.version>
<ehcache.version>2.10.0</ehcache.version>
</properties>

<!-- spring核心包 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.0.0</version>
</dependency>

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.0.0</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</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-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</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-orm</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>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${activation.version}</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
</dependency>

<dependency>
<groupId>aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>${aopalliance.version}</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>${ehcache.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>${spring-data-redis.version}</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>${jedis.version}</version>
</dependency>

<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0.version}</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-jdbc.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>

<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>${json-lib.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.0.0, 7.0.99]</version>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>${ezmorph.version}</version>
</dependency>
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>${jdom.version}</version>
</dependency>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>${p6spy.version}</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>${dom4j.version}</version>
</dependency>
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>${urlrewrite.version}</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${javamail.version}</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>${pinyin4j.version}</version>
</dependency>

<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>

<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
<version>${lucene.version}</version>
</dependency>
<!-- commons -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons-beanutils.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.version}</version>
</dependency>
<dependency>
<groupId>commons-chain</groupId>
<artifactId>commons-chain</artifactId>
<version>${commons-chain.version}</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons-collections.version}</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>${commons-digester.version}</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>${commons-validator.version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>${commons-httpclient.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpclient.version}</version>
</dependency>

<dependency>
<groupId>org.htmlparser</groupId>
<artifactId>htmllexer</artifactId>
<version>${htmlparser.version}</version>
</dependency>
<dependency>
<groupId>org.htmlparser</groupId>
<artifactId>htmlparser</artifactId>
<version>${htmlparser.version}</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>${jaxen.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>

<!-- spring-mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</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-instrument</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument-tomcat</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jsptags</groupId>
<artifactId>pager-taglib</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
<scope>test</scope>
</dependency>
<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>

<dependency>
<groupId>QRCode</groupId>
<artifactId>QRCode</artifactId>
<version>1.0</version>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/QRCode.jar</systemPath>
<scope>system</scope>
</dependency>
<!-- 敏感词过滤包 -->
<dependency>
<groupId>DFA</groupId>
<artifactId>DFA</artifactId>
<version>1.0</version>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/DFA.jar</systemPath>
<scope>system</scope>
</dependency>
<!-- 短信发送包 -->
<dependency>
<groupId>SMS</groupId>
<artifactId>SMS</artifactId>
<version>1.0</version>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/SMS.jar</systemPath>
<scope>system</scope>
</dependency>
<!-- lucene搜索引擎包 -->
<dependency>
<groupId>lucene</groupId>
<artifactId>lucene</artifactId>
<version>1.0</version>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/lucene-api.jar</systemPath>
<scope>system</scope>
</dependency>
</dependencies>
</project>
web.xml 文件配置
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>ddbuy</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-mybatis.xml</param-value>
</context-param>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.*</url-pattern>
</servlet-mapping>
<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>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<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:config/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>
<url-pattern>/</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>ImgExtra</servlet-name>
<servlet-class>com.weshop.core.servlet.ImgExtra</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImgExtra</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>upload</servlet-name>
<servlet-class>com.weshop.core.servlet.Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>upload</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

上述就是整个项目的配置文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: