Idea SpringMVC+Spring+MyBatis+Maven調(diào)整【轉(zhuǎn)】

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)師可霎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魄鸦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子癣朗,更是在濱河造成了極大的恐慌拾因,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷余,死亡現(xiàn)場離奇詭異绢记,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)正卧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門蠢熄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炉旷,你說我怎么就攤上這事签孔。” “怎么了窘行?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵饥追,是天一觀的道長。 經(jīng)常有香客問我罐盔,道長但绕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任惶看,我火速辦了婚禮捏顺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碳竟。我一直安慰自己草丧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布莹桅。 她就那樣靜靜地躺著昌执,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诈泼。 梳的紋絲不亂的頭發(fā)上懂拾,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音铐达,去河邊找鬼岖赋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瓮孙,可吹牛的內(nèi)容都是我干的唐断。 我是一名探鬼主播选脊,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脸甘!你這毒婦竟也來了恳啥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤丹诀,失蹤者是張志新(化名)和其女友劉穎钝的,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铆遭,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡硝桩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枚荣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碗脊。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖橄妆,靈堂內(nèi)的尸體忽然破棺而出望薄,到底是詐尸還是另有隱情,我是刑警寧澤呼畸,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站颁虐,受9級特大地震影響蛮原,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜另绩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一儒陨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧笋籽,春花似錦蹦漠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侍芝,卻和暖如春研铆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背州叠。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工棵红, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咧栗。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓逆甜,卻偏偏與公主長得像虱肄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子交煞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容