SSM框架整合—環(huán)境搭建

參考書(shū)《Java EE互聯(lián)網(wǎng)輕量級(jí)框架整合開(kāi)發(fā)》
參考博客《http://m.blog.csdn.net/u012909091

Spring

Spring是一個(gè)開(kāi)源框架腊满,Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開(kāi)發(fā)框架
由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來(lái)
它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的
Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情
然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)侠仇。從簡(jiǎn)單性携取、可測(cè)試性和松耦合的角度而言仆抵,任何Java應(yīng)用都可以從Spring中受益 
簡(jiǎn)單來(lái)說(shuō)孩革,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架

SpringMVC

Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已融合在Spring Web Flow里面.
Spring MVC分離了控制器,模型對(duì)象,分派器以及處理程序?qū)ο蟮慕巧?這種分離讓他們更容易進(jìn)行控制

MyBatis

基于Java的持久層框架,iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索
iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索

開(kāi)發(fā)環(huán)境搭建

http://blog.csdn.net/zhshulin/article/details/30779873

Maven Web項(xiàng)目創(chuàng)建

http://blog.csdn.net/zhshulin/article/details/37921705

SSM整合

Maven引入需要的JAR包

pom.xml

<properties>  
        <!-- spring版本號(hào) -->  
        <spring.version>4.0.2.RELEASE</spring.version>  
        <!-- mybatis版本號(hào) -->  
        <mybatis.version>3.2.6</mybatis.version>  
        <!-- log4j日志文件管理包版本 -->  
        <slf4j.version>1.7.7</slf4j.version>  
        <log4j.version>1.2.17</log4j.version>  
    </properties>  
  
    <dependencies>  
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.11</version>  
            <!-- 表示開(kāi)發(fā)的時(shí)候引入蜓竹,發(fā)布的時(shí)候不會(huì)加載此包 -->  
            <scope>test</scope>  
        </dependency>  
        <!-- spring核心包 -->  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-core</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-web</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-oxm</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-tx</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-jdbc</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-webmvc</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-aop</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context-support</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
        <!-- mybatis核心包 -->  
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis</artifactId>  
            <version>${mybatis.version}</version>  
        </dependency>  
        <!-- mybatis/spring包 -->  
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis-spring</artifactId>  
            <version>1.2.2</version>  
        </dependency>  
        <!-- 導(dǎo)入java ee jar 包 -->  
        <dependency>  
            <groupId>javax</groupId>  
            <artifactId>javaee-api</artifactId>  
            <version>7.0</version>  
        </dependency>  
        <!-- 導(dǎo)入Mysql數(shù)據(jù)庫(kù)鏈接jar包 -->  
        <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>5.1.30</version>  
        </dependency>  
        <!-- 導(dǎo)入dbcp的jar包荆几,用來(lái)在applicationContext.xml中配置數(shù)據(jù)庫(kù) -->  
        <dependency>  
            <groupId>commons-dbcp</groupId>  
            <artifactId>commons-dbcp</artifactId>  
            <version>1.2.2</version>  
        </dependency>  
        <!-- JSTL標(biāo)簽類(lèi) -->  
        <dependency>  
            <groupId>jstl</groupId>  
            <artifactId>jstl</artifactId>  
            <version>1.2</version>  
        </dependency>  
        <!-- 日志文件管理包 -->  
        <!-- log start -->  
        <dependency>  
            <groupId>log4j</groupId>  
            <artifactId>log4j</artifactId>  
            <version>${log4j.version}</version>  
        </dependency>  
          
          
        <!-- 格式化對(duì)象,方便輸出日志 -->  
        <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>fastjson</artifactId>  
            <version>1.1.41</version>  
        </dependency>  
  
  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-api</artifactId>  
            <version>${slf4j.version}</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-log4j12</artifactId>  
            <version>${slf4j.version}</version>  
        </dependency>  
        <!-- log end -->  
        <!-- 映入JSON -->  
        <dependency>  
            <groupId>org.codehaus.jackson</groupId>  
            <artifactId>jackson-mapper-asl</artifactId>  
            <version>1.9.13</version>  
        </dependency>  
        <!-- 上傳組件包 -->  
        <dependency>  
            <groupId>commons-fileupload</groupId>  
            <artifactId>commons-fileupload</artifactId>  
            <version>1.3.1</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-io</groupId>  
            <artifactId>commons-io</artifactId>  
            <version>2.4</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-codec</groupId>  
            <artifactId>commons-codec</artifactId>  
            <version>1.9</version>  
        </dependency>  
          
          
    </dependencies>  

Spring 與 MyBatis 的整合

建立JDBC屬性文件

jdbc.properties

driver=com.mysql.jdbc.Driver  
url=jdbc:mysql://10.221.10.111:8080/db_zsl  
username= root 
password= sxq961020
#定義初始連接數(shù)  
initialSize=0  
#定義最大連接數(shù)  
maxActive=20  
#定義最大空閑  
maxIdle=20  
#定義最小空閑  
minIdle=1  
#定義最長(zhǎng)等待時(shí)間  
maxWait=60000  

建立 spring-mybatis.xml 配置文件

spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    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-3.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
    <!-- 自動(dòng)掃描 -->  
    <context:component-scan base-package="com.cn.hnust" />  
    <!-- 引入配置文件 -->  
    <bean id="propertyConfigurer"  
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="location" value="classpath:jdbc.properties" />  
    </bean>  
  
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
        destroy-method="close">  
        <property name="driverClassName" value="${driver}" />  
        <property name="url" value="${url}" />  
        <property name="username" value="${username}" />  
        <property name="password" value="${password}" />  
        <!-- 初始化連接大小 -->  
        <property name="initialSize" value="${initialSize}"></property>  
        <!-- 連接池最大數(shù)量 -->  
        <property name="maxActive" value="${maxActive}"></property>  
        <!-- 連接池最大空閑 -->  
        <property name="maxIdle" value="${maxIdle}"></property>  
        <!-- 連接池最小空閑 -->  
        <property name="minIdle" value="${minIdle}"></property>  
        <!-- 獲取連接最大等待時(shí)間 -->  
        <property name="maxWait" value="${maxWait}"></property>  
    </bean>  
  
    <!-- spring和MyBatis完美整合嗜历,不需要mybatis的配置映射文件 -->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <!-- 自動(dòng)掃描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:com/cn/hnust/mapping/*.xml"></property>  
    </bean>  
  
    <!-- DAO接口所在包名宣渗,Spring會(huì)自動(dòng)查找其下的類(lèi) -->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.cn.hnust.dao" />  
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
    </bean>  
  
    <!-- (事務(wù)管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="transactionManager"  
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>  
  
</beans>  

Log4j 的配置

為了方便調(diào)試,一般都會(huì)用日志來(lái)輸出信息,Log4j是Apache的一個(gè)開(kāi)放源代碼項(xiàng)目
通過(guò)log4j,可以控制日志信息輸送的目的地是控制臺(tái),文件,GUI組件,甚至是套接口服務(wù)器,NT的事件記錄器,
UNIX Syslog守護(hù)進(jìn)程等;也可以控制每一條日志的輸出格式;通過(guò)定義每一條日志信息的級(jí)別,能夠更加細(xì)致的控制日志的生成過(guò)程

log4j.properties

log4j.rootLogger=INFO,Console,File  
#定義日志輸出目的地為控制臺(tái)  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
#可以靈活地指定日志輸出格式,下面一行是指定具體的格式  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  
  
#文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件  
log4j.appender.File = org.apache.log4j.RollingFileAppender  
#指定輸出目錄  
log4j.appender.File.File = logs/ssm.log  
#定義文件最大大小  
log4j.appender.File.MaxFileSize = 10MB  
# 輸出所以日志秸脱,如果換成DEBUG表示輸出DEBUG以上級(jí)別日志  
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n  

JUnit測(cè)試

創(chuàng)建測(cè)試用表

DROP TABLE IF EXISTS `user_t`;  
  
CREATE TABLE `user_t` (  
  `id` int(11) NOT NULL AUTO_INCREMENT,  
  `user_name` varchar(40) NOT NULL,  
  `password` varchar(255) NOT NULL,  
  `age` int(4) NOT NULL,  
  PRIMARY KEY (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  
  
/*Data for the table `user_t` */  
  
insert  into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'測(cè)試','sfasgfaf',24);  

利用MyBatis Generator自動(dòng)創(chuàng)建代碼

http://blog.csdn.net/zhshulin/article/details/23912615
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末落包,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子摊唇,更是在濱河造成了極大的恐慌,老刑警劉巖涯鲁,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷查,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抹腿,警方通過(guò)查閱死者的電腦和手機(jī)岛请,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)警绩,“玉大人崇败,你說(shuō)我怎么就攤上這事〖缦椋” “怎么了后室?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)混狠。 經(jīng)常有香客問(wèn)我岸霹,道長(zhǎng),這世上最難降的妖魔是什么将饺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任贡避,我火速辦了婚禮,結(jié)果婚禮上予弧,老公的妹妹穿的比我還像新娘刮吧。我一直安慰自己,他們只是感情好掖蛤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布杀捻。 她就那樣靜靜地躺著,像睡著了一般坠七。 火紅的嫁衣襯著肌膚如雪水醋。 梳的紋絲不亂的頭發(fā)上旗笔,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音拄踪,去河邊找鬼蝇恶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惶桐,可吹牛的內(nèi)容都是我干的撮弧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼姚糊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贿衍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起救恨,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贸辈,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后肠槽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體擎淤,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年秸仙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嘴拢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寂纪,死狀恐怖席吴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捞蛋,我是刑警寧澤孝冒,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站襟交,受9級(jí)特大地震影響迈倍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捣域,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一啼染、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧焕梅,春花似錦迹鹅、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春弟蚀,著一層夾襖步出監(jiān)牢的瞬間蚤霞,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工义钉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昧绣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓捶闸,卻偏偏與公主長(zhǎng)得像夜畴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子删壮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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