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项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。





















































网友评论