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項目構建,您可以直接做架構,可以提升自己的學習能力,使您成為真正的架構師。