Idea SpringMVC+Spring+MyBatis+Maven整合
創(chuàng)建項(xiàng)目
File-New Project
選中左側(cè)的Maven,選中右側(cè)上方的Create from archetype饮寞,然后選中下方列表中的webapp咐汞,然后點(diǎn)擊Next
在GroupId和ArtifactId中填入指定內(nèi)容熟史,點(diǎn)擊Next
直接點(diǎn)Next
輸入項(xiàng)目名稱沽瞭,F(xiàn)inish
Idea會自動開始下載所依賴的包提针,等待其完成海雪。
項(xiàng)目結(jié)構(gòu)
項(xiàng)目剛建好的時(shí)候是沒有這些文件的,所以自己手動創(chuàng)建缺少的文件夾(包)
創(chuàng)建完后的項(xiàng)目框架:
修改pom.xml導(dǎo)入依賴包插件
依賴包需要如下:
spring framework
aspectj事務(wù)
c3p0數(shù)據(jù)源
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逆向工程創(chuàng)建mapper接口和xml文件
user表結(jié)構(gòu)
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中創(chuàng)建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">
點(diǎn)擊idea右側(cè)的maven選項(xiàng)卡子房,選擇其中的mybatis-generator形用,點(diǎn)擊頂部的綠色按鈕運(yùn)行
如果沒有出錯(cuò)的話,應(yīng)該會自動生成mapper接口文件池颈、xml文件尾序、pojo文件。
db.properties文件
在resources/config中創(chuàng)建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中創(chuàng)建SqlMapConfig.xml文件每币,該文件為Mybatis的配置文件,由于跟spring整合琢歇,所以一些基礎(chǔ)配置文件都在spring中兰怠,在這里該文件中值需要寫文件的框架
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
SpringMVC配置文件
在resources/config/spring中創(chuàng)建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中創(chuàng)建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文件內(nèi)容
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接口與實(shí)現(xiàn)
創(chuàng)建一個(gè)簡單的service揭保,只有一個(gè)查看所有用戶列表的功能
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;
}
實(shí)現(xiàn)類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 {
//調(diào)用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();
//調(diào)用service方法得到用戶列表
List users = userService.findUser();
//將得到的用戶列表內(nèi)容添加到ModelAndView中
modelAndView.addObject("users",users);
//設(shè)置響應(yīng)的jsp視圖
modelAndView.setViewName("findUser");
return modelAndView;
}
}
視圖
根據(jù)之前寫的controller秸侣,返回的視圖為findUser,所以在/WEB-INF/views中創(chuàng)建findUser.jsp文件,用來顯示查詢出來的結(jié)果
<%--
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連接池(高效味榛、功能強(qiáng)大椭坚、可擴(kuò)展性好的數(shù)據(jù)庫連接池、監(jiān)控?cái)?shù)據(jù)庫訪問性能搏色、支持Common-Logging善茎、Log4j和JdkLog,監(jiān)控?cái)?shù)據(jù)庫訪問)
2. 提供高并發(fā)JMS消息處理機(jī)制
3. 所有功能模塊化频轿、所有模塊服務(wù)化垂涯、所有服務(wù)原子化的方式,提供可拓展的服務(wù)模型航邢,使程序穩(wěn)定運(yùn)行耕赘,永不宕機(jī)
4. 提供Wink Rest、Webservice服務(wù)翠忠,故可作為獨(dú)立服務(wù)平臺部署
框架整合:
Springmvc + Mybatis + Shiro(權(quán)限) + REST(服務(wù)) + WebService(服務(wù)) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定時(shí)調(diào)度) + Bootstrap Html5(支持PC鞠苟、IOS、Android)
框架簡介:
項(xiàng)目Maven構(gòu)建秽之,真實(shí)大型互聯(lián)網(wǎng)架構(gòu)当娱,做到高并發(fā),大數(shù)據(jù)處理考榨,整個(gè)項(xiàng)目使用定制化服務(wù)思想跨细,提供模塊化、服務(wù)化河质、原子化的方案冀惭,將功能模塊進(jìn)行拆分,可以公用到所有的項(xiàng)目中掀鹅。架構(gòu)采用分布式部署架構(gòu)散休,所有模塊進(jìn)行拆分,使項(xiàng)目做到絕對解耦乐尊,穩(wěn)定壓倒一切~~
持續(xù)集成:
1. 我的待辦工作流服務(wù)(提供Webservice服務(wù))
2. 我的待辦工作流集成JMS消息服務(wù)(支持高并發(fā)戚丸,可支持成千上萬系統(tǒng)集成)
3. 我的任務(wù)提供Rest服務(wù),完成日常的工作管理扔嵌,通過定時(shí)調(diào)度平臺限府,動態(tài)生成我的任務(wù)、循環(huán)周期任務(wù)痢缎、定時(shí)郵催提醒完成任務(wù)等
4. 文件上傳胁勺、多線程下載服務(wù)化、發(fā)送郵件独旷、短信服務(wù)化署穗、部門信息服務(wù)化寥裂、產(chǎn)品信息服務(wù)化、信息發(fā)布服務(wù)化蛇捌、我的訂閱服務(wù)化抚恒、我的任務(wù)服務(wù)化、公共鏈接络拌、我的收藏服務(wù)化等
系統(tǒng)模塊:
1.? 用戶管理:
用戶信息管理(添加、刪除回溺、修改春贸、用戶授權(quán)、用戶欄目管理遗遵、查詢等)
用戶組管理(添加萍恕、刪除、修改车要、用戶組欄目授權(quán)允粤,欄目授權(quán)、查詢翼岁、用戶組人員添加查詢等)
用戶角色管理(添加类垫、刪除、修改琅坡、用戶角色授權(quán)悉患、用戶角色欄目信息查詢設(shè)置等)
2. ?文章管理:
欄目管理:查詢無限極欄目樹、創(chuàng)建無限極欄目樹分類(導(dǎo)航欄目榆俺、圖片列表欄目售躁、文章列表欄目、文章內(nèi)容欄目等)茴晋、刪除陪捷、修改欄目信息。
文章管理:創(chuàng)建诺擅、刪除市袖、修改文章,多維度文章查詢掀虎,包括已發(fā)布凌盯、未發(fā)布、所有文章等烹玉。文章富文本編輯器驰怎、文章多文件上傳、文章狀態(tài)控制等二打。
3.? 系統(tǒng)設(shè)置:
數(shù)據(jù)字典管理:支持中县忌、英文信息,支持無限級別分類配置,動態(tài)控制是否可用等症杏。
部門信息管理:支持中装获、英文無限級別部門信息增加,刪除厉颤,修改操作穴豫,部門列表、樹心查詢等逼友。
日志管理:系統(tǒng)日志列表查詢精肃、在線查看、在線下載等
路線管理:集成百度地圖API帜乞,提供線路查詢管理功能
Druid Monitor(監(jiān)控):集成阿里巴巴連接池司抱,提供在線連接池監(jiān)控程序,包括:數(shù)據(jù)源黎烈、SQL監(jiān)控习柠、URL監(jiān)控、Session監(jiān)控照棋、Spring監(jiān)控等
網(wǎng)站信息管理:通過系統(tǒng)配置文件進(jìn)行網(wǎng)站內(nèi)容操作资溃,包括郵件服務(wù)器配置、公司基本信息配置等必怜。
4.集成REST服務(wù)肉拓,可以用作獨(dú)立服務(wù)平臺(提供大量實(shí)例及測試平臺,包括:文件上傳下載梳庆、郵件短信發(fā)送暖途、部門、產(chǎn)品膏执、公共連接驻售、我的收藏、我的任務(wù)更米、信息發(fā)布等)
5.? 集成Quartz調(diào)度欺栗,可以用作定時(shí)調(diào)度平臺(動態(tài)配置調(diào)度類、調(diào)度時(shí)間征峦,使程序自動執(zhí)行某些業(yè)務(wù))
6.? Lucene搜索引擎迟几,可以將文件資料索引化,支持文件內(nèi)容搜索栏笆、關(guān)鍵字搜索类腮、高亮關(guān)鍵字等,使信息在毫秒內(nèi)提取查詢出來
7.? 用戶設(shè)置功能:包括修改用戶信息蛉加,修改密碼蚜枢、發(fā)送消息缸逃,修改個(gè)人圖片,查看角色厂抽、查看用戶組需频,管理員修改角色、用戶筷凤、用戶組等昭殉。
8.? 集成Webservice平臺,包括jaxws服務(wù)嵌施、CXF框架饲化,配置雙加密的權(quán)限認(rèn)證。使服務(wù)集成更加安全吗伤。
9.? Bootstrap html5提供了兩套前臺開環(huán)境,包括CMS和電子商務(wù)網(wǎng)站硫眨,使您的開發(fā)更加的簡潔足淆。
技術(shù)點(diǎn):
1.? Springmvc + Mybatis集成、SpringSecurity權(quán)限控制礁阁、Spring AOP事務(wù)處理巧号。
2.? ?Wink Rest服務(wù)、Webservice服務(wù):jaxws姥闭、CXF等
3.? IO 流上傳下載文件丹鸿,多線程操作
4.? 發(fā)送郵件,配置郵件服務(wù)器棚品,發(fā)基于html靠欢、純文本格式的郵件
5.? MD5加密 (登陸密碼校驗(yàn)加密等),用戶統(tǒng)一Session铜跑、Cookie管理门怪,統(tǒng)一驗(yàn)證碼校驗(yàn)等。
6.? 數(shù)據(jù)庫連接池統(tǒng)一配置
7.? Quartz定時(shí)調(diào)度任務(wù)集成(直接通過配置即可)
8.? Httpclient破解驗(yàn)證碼锅纺,登陸聯(lián)通充值平臺
9.? 漢字掷空、英文拆分、可以用作文檔關(guān)鍵字搜索等囤锉。
10.? Base64圖片處理坦弟,支持PC,Android官地,IOS
11.? Service Socket?酿傍、Client Socket?通信技術(shù)(已經(jīng)做過GPRS數(shù)據(jù)獲取,并用到了項(xiàng)目中)
12.? 提供大量工具類区丑,可以直接使用
13.? Maven項(xiàng)目構(gòu)建拧粪,您可以直接做架構(gòu)修陡,可以提升自己的學(xué)習(xí)能力,使您成為真正的架構(gòu)師可霎。