Idea SpringMVC+Spring+MyBatis+Maven调整【转】

Idea SpringMVC+Spring+MyBatis+Maven整合

创建项目

File-New Project

选中左侧的Maven,选中右侧上方的Create from archetype,然后选中下方列表中的webapp,然后点击Next

在GroupId和ArtifactId中填入指定内容,点击Next

直接点Next

输入项目名称,Finish

Idea会自动开始下载所依赖的包,等待其完成。

项目结构

项目刚建好的时候是没有这些文件的,所以自己手动创建缺少的文件夹(包)

创建完后的项目框架:

修改pom.xml导入依赖包插件

依赖包需要如下:

spring framework

aspectj事务

c3p0数据源

servlet/jsp api

junit4

mybatis

mybatis spring整合

mysql driver

jstl

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.elin4it.ssm

ssm

war

1.0-SNAPSHOT

ssm Maven Webapp

http://maven.apache.org

ssm


org.mybatis.generator

mybatis-generator-maven-plugin

1.3.2

true

true

4.1.1.RELEASE


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-test

${spring.version}

插件需要用到mybatis的逆向工程

完整的pom.xml代码清单:

使用mybatis逆向工程创建mapper接口和xml文件

user表结构

DROP TABLE IF EXISTS `user`;

/*!40101 SET @saved_cs_client    = @@character_set_client */;

/*!40101 SET character_set_client = utf8 */;

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(32) NOT NULL COMMENT '用户名称',

`birthday` date DEFAULT NULL COMMENT '生日',

`sex` char(1) DEFAULT NULL COMMENT '性别',

`address` varchar(256) DEFAULT NULL COMMENT '地址',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

在main/resources中创建generatorConfig.xml文件

generatorConfig.xml代码清单


PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=UTF-8"

userId="root"

password="">

NUMERIC 类型解析为java.math.BigDecimal -->

targetProject="src\main\java">

targetProject="src\main\resources"

targetPackage="com.elin4it.springmvcMaven.mapper"

targetProject="src\main\java">

点击idea右侧的maven选项卡,选择其中的mybatis-generator,点击顶部的绿色按钮运行

如果没有出错的话,应该会自动生成mapper接口文件、xml文件、pojo文件。

db.properties文件

在resources/config中创建db.properties,该文件用来描述mysql连接信息

jdbc.driver = com.mysql.jdbc.Driver

jdbc.url = jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=UTF-8

jdbc.username = root

jdbc.password =

SqlMapConfig文件

在resources/config/mybatis中创建SqlMapConfig.xml文件,该文件为Mybatis的配置文件,由于跟spring整合,所以一些基础配置文件都在spring中,在这里该文件中值需要写文件的框架


PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

SpringMVC配置文件

在resources/config/spring中创建springmvc.xml文件


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">




Spring IOC注入和事件控制

在resources/config/spring中创建applicationContext-dao.xml、application-service.xml、applicationContext-transaction.xml文件

applicationContext-dao.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

application-service.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

applicationContext-transaction.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

web.xml文件

修改web.xml文件内容

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"

version="3.1">

contextConfigLocation

classpath*:config/spring/applicationContext-*.xml

org.springframework.web.context.ContextLoaderListener

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

CharacterEncodingFilter

/*

dispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath*:config/spring/springmvc.xml

1

dispatcherServlet

/

Service接口与实现

创建一个简单的service,只有一个查看所有用户列表的功能

UserService.java

package com.elin4it.ssm.service;

import com.elin4it.ssm.pojo.User;

import java.util.List;

/**

* Created by 烽 on 2015/7/11.

*/

public interface UserService {

/**

* 查找所有用户

* @return

* @throws Exception

*/

List findUser()throws Exception;

}

实现类UserServiceImpl.java

package com.elin4it.ssm.service;

import com.elin4it.ssm.mapper.UserMapper;

import com.elin4it.ssm.pojo.User;

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

import org.springframework.stereotype.Service;

import java.util.List;

/**

* Created by 烽 on 2015/7/11.

*/

@Service

public class UserServiceImpl implements UserService {

//User接口

@Autowired

private UserMapper userMapper;

public List findUser() throws Exception {

//调用mapper类中的selectByExample方法,如果传入类型为null,则表示无条件查找

List users = userMapper.selectByExample(null);

return users;

}

}

Controller

package com.elin4it.ssm.controller;

import com.elin4it.ssm.pojo.User;

import com.elin4it.ssm.service.UserService;

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

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

import java.util.List;

/**

* Created by 烽 on 2015/7/11.

*/

@Controller

@RequestMapping("/user")

public class UserController {

//service类

@Autowired

private UserService userService;

/**

* 查找所用用户控制器方法

* @return

* @throws Exception

*/

@RequestMapping("/findUser")

public ModelAndView findUser()throws Exception{

ModelAndView modelAndView = new ModelAndView();

//调用service方法得到用户列表

List users = userService.findUser();

//将得到的用户列表内容添加到ModelAndView中

modelAndView.addObject("users",users);

//设置响应的jsp视图

modelAndView.setViewName("findUser");

return modelAndView;

}

}

视图

根据之前写的controller,返回的视图为findUser,所以在/WEB-INF/views中创建findUser.jsp文件,用来显示查询出来的结果

<%--

Created by IntelliJ IDEA.

User: 烽

Date: 2015/7/11

Time: 19:47

To change this template use File | Settings | File Templates.

--%>

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

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

findUser

${u.id}

${u.username}

${u.birthday}

1. 使用阿里巴巴Druid连接池(高效、功能强大、可扩展性好的数据库连接池、监控数据库访问性能、支持Common-Logging、Log4j和JdkLog,监控数据库访问)

2. 提供高并发JMS消息处理机制

3. 所有功能模块化、所有模块服务化、所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机

4. 提供Wink Rest、Webservice服务,故可作为独立服务平台部署

框架整合:

Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC、IOS、Android)

框架简介:

项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块进行拆分,使项目做到绝对解耦,稳定压倒一切~~

持续集成:

1. 我的待办工作流服务(提供Webservice服务)

2. 我的待办工作流集成JMS消息服务(支持高并发,可支持成千上万系统集成)

3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等

4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务化、信息发布服务化、我的订阅服务化、我的任务服务化、公共链接、我的收藏服务化等

系统模块:

1.  用户管理:

用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等)

用户组管理(添加、删除、修改、用户组栏目授权,栏目授权、查询、用户组人员添加查询等)

用户角色管理(添加、删除、修改、用户角色授权、用户角色栏目信息查询设置等)

2.  文章管理:

栏目管理:查询无限极栏目树、创建无限极栏目树分类(导航栏目、图片列表栏目、文章列表栏目、文章内容栏目等)、删除、修改栏目信息。

文章管理:创建、删除、修改文章,多维度文章查询,包括已发布、未发布、所有文章等。文章富文本编辑器、文章多文件上传、文章状态控制等。

3.  系统设置:

数据字典管理:支持中、英文信息,支持无限级别分类配置,动态控制是否可用等。

部门信息管理:支持中、英文无限级别部门信息增加,删除,修改操作,部门列表、树心查询等。

日志管理:系统日志列表查询、在线查看、在线下载等

路线管理:集成百度地图API,提供线路查询管理功能

Druid Monitor(监控):集成阿里巴巴连接池,提供在线连接池监控程序,包括:数据源、SQL监控、URL监控、Session监控、Spring监控等

网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。

4.集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等)

5.  集成Quartz调度,可以用作定时调度平台(动态配置调度类、调度时间,使程序自动执行某些业务)

6.  Lucene搜索引擎,可以将文件资料索引化,支持文件内容搜索、关键字搜索、高亮关键字等,使信息在毫秒内提取查询出来

7.  用户设置功能:包括修改用户信息,修改密码、发送消息,修改个人图片,查看角色、查看用户组,管理员修改角色、用户、用户组等。

8.  集成Webservice平台,包括jaxws服务、CXF框架,配置双加密的权限认证。使服务集成更加安全。

9.  Bootstrap html5提供了两套前台开环境,包括CMS和电子商务网站,使您的开发更加的简洁。

技术点:

1.  Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。

2.   Wink Rest服务、Webservice服务:jaxws、CXF等

3.  IO 流上传下载文件,多线程操作

4.  发送邮件,配置邮件服务器,发基于html、纯文本格式的邮件

5.  MD5加密 (登陆密码校验加密等),用户统一Session、Cookie管理,统一验证码校验等。

6.  数据库连接池统一配置

7.  Quartz定时调度任务集成(直接通过配置即可)

8.  Httpclient破解验证码,登陆联通充值平台

9.  汉字、英文拆分、可以用作文档关键字搜索等。

10.  Base64图片处理,支持PC,Android,IOS

11.  Service Socket 、Client Socket 通信技术(已经做过GPRS数据获取,并用到了项目中)

12.  提供大量工具类,可以直接使用

13.  Maven项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容