在線學(xué)習(xí)跟蹤系統(tǒng)SSM框架搭建

一、是什么
學(xué)習(xí)跟蹤系統(tǒng)是一個記錄學(xué)習(xí)過程的系統(tǒng)。
采用springMVC+Spring+Mybatis技術(shù),以下為該系統(tǒng)的思維導(dǎo)圖牢硅,同時歡迎加入QQ交流群進(jìn)行交流:5369686,一起做項(xiàng)目芝雪,一起High


在線學(xué)習(xí)跟蹤系統(tǒng)思維導(dǎo)圖

二减余、框架搭建
配置在官方文檔中都能找到相關(guān)配置:一下文檔均在項(xiàng)目中有體現(xiàn),可以再源碼中下載查看惩系,以后得分享中會對這些知識點(diǎn)進(jìn)行分別講解位岔。
spring官方文檔:https://docs.spring.io/spring/docs/4.3.9.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#transaction-declarative-txadvice-settings
mybatis官方文檔:http://www.mybatis.org/mybatis-3/zh/configuration.html
mybatis-spring官方文檔:http://www.mybatis.org/spring/zh/batch.html
mybatis-generator官方文檔:http://www.mybatis.org/generator/configreference/javaModelGenerator.html
druid數(shù)據(jù)源官方文檔:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE
logback日志框架官方文檔:https://logback.qos.ch/manual/layouts.html

源碼地址:https://pan.baidu.com/s/1b231Wa
視頻講解:http://www.365yg.com/item/6461501385442591246/
maven依賴:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.begincode</groupId>
    <artifactId>begin-study</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>begin-study</name>
    <properties>
        <spring.version>4.3.9.RELEASE</spring.version>
        <guava.version>20.0</guava.version>
        <log4j.version>2.7</log4j.version>
        <jcl-over-slf4.version>1.7.21</jcl-over-slf4.version>
        <logback.version>1.1.7</logback.version>
        <jackson.version>2.8.1</jackson.version>
        <mybatis.version>3.4.1</mybatis.version>
        <mybatis-generator.version>1.3.2</mybatis-generator.version>
        <druid.version>1.0.27</druid.version>
        <mysql.version>5.1.34</mysql.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>
        <!-- 數(shù)據(jù)源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
        </dependency>

        <!--日志依賴 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${jcl-over-slf4.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>

        <!-- jackson -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <!-- mybatis generator -->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>begin-study</finalName>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
            </plugin>
        </plugins>
    </build>
</project> 

三、文字配置描述
1堡牡、Spring配置
SpringMVC是Spring家族的一部分抒抬,天然支持Spring,所以配置Spring一句話晤柄,配置一個監(jiān)聽器即可

 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

2擦剑、SpringMVC配置
web.xml

   <!-- mvc配置文件,說明是位于resources目錄下的sprign-config.xml
      如果不通過這樣的配置芥颈,默認(rèn)是讀取WEB-INF目錄下的servlet名稱對應(yīng)的xml文件惠勒。
如:本例中DispatcherServlet的名稱定義為web,則需要讀取web-servlet.xml作為SpringMVC的配置文件
    --> 
  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-config.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>web</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>web</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3爬坑、spring-config.xml配置

<!-- 加載屬性文件-->
<context:property-placeholder location="classpath:config.properties" />
 <!-- 加載其他配置文件纠屋,本項(xiàng)目將mvc和mybatis分為兩個文件配置,
   這種方式只是為了讓配置文件更加清晰-->
  <import resource="classpath:spring/spring-mvc.xml"/>
  <import resource="classpath:spring/spring-mybatis.xml"/>

4盾计、spring-mvc.xml 位于resources.spring目錄下

<?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:mvc="http://www.springframework.org/schema/mvc"
       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/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">


    <context:component-scan base-package="net.begincode"/>
    
    <!-- jackson解析解析對象到j(luò)son-->
    <bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
        <property name="indentOutput" value="false"/>
        <property name="simpleDateFormat" value="yyyy-MM-dd"/>
    </bean>
    <!-- 用jackson處理responseBody注解 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper" ref="objectMapper"/>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!-- 資源文件位置售担,jsp文件和favico.ico文件 -->
    <mvc:resources mapping="/" location="/WEB-INF/jsp/"/>
    <mvc:resources mapping="/favicon.ico" location="/"/>  

    <!-- jsp view支持 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

5赁遗、spring-mybatis.xml 位于resource.spring目錄下

<?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:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!-- 注解的事務(wù)支持 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
     <!-- 數(shù)據(jù)源采用阿里的druid數(shù)據(jù)源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 基本屬性 url、user族铆、password -->
        <property name="url" value="${jdbc_url}" />
        <property name="username" value="${jdbc_user}" />
        <property name="password" value="${jdbc_password}" />
        <!-- 配置初始化大小岩四、最小、最大 -->
        <property name="initialSize" value="1" />
        <property name="minIdle" value="1" />
        <property name="maxActive" value="20" />

        <!-- 配置獲取連接等待超時的時間 -->
        <property name="maxWait" value="60000" />

        <!-- 配置間隔多久才進(jìn)行一次檢測骑素,檢測需要關(guān)閉的空閑連接炫乓,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />

        <!-- 配置一個連接在池中最小生存的時間刚夺,單位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <property name="validationQuery" value="SELECT 'x'" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

        <!-- 打開PSCache献丑,并且指定每個連接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />

        <!-- 配置監(jiān)控統(tǒng)計(jì)攔截的filters -->
        <property name="filters" value="stat" />
    </bean>

   
    <!-- 事務(wù)配置 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>


    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        <property name="configLocation" value="classpath:spring/mybatis.xml"/>
    </bean>
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="net.begincode.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>


</beans>

6、mybatis.xml 上一個配置中用到了mybatis侠姑,需要對他進(jìn)行一些基礎(chǔ)參數(shù)的設(shè)置创橄,就在這文件中配置如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!-- Globally enables or disables any caches configured in any mapper under this configuration -->
        <setting name="cacheEnabled" value="true"/>
        <!-- Sets the number of seconds the driver will wait for a response from the database -->
        <setting name="defaultStatementTimeout" value="3000"/>
        <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- Allows JDBC support for generated keys. A compatible driver is required.
        This setting forces generated keys to be used if set to true,
         as some drivers deny compatibility but still work -->
        <setting name="useGeneratedKeys" value="true"/>
    </settings>

</configuration>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市莽红,隨后出現(xiàn)的幾起案子妥畏,更是在濱河造成了極大的恐慌,老刑警劉巖安吁,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件醉蚁,死亡現(xiàn)場離奇詭異,居然都是意外死亡鬼店,警方通過查閱死者的電腦和手機(jī)网棍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妇智,“玉大人滥玷,你說我怎么就攤上這事∥±猓” “怎么了惑畴?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長航徙。 經(jīng)常有香客問我如贷,道長,這世上最難降的妖魔是什么到踏? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任倒得,我火速辦了婚禮,結(jié)果婚禮上夭禽,老公的妹妹穿的比我還像新娘霞掺。我一直安慰自己,他們只是感情好讹躯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布菩彬。 她就那樣靜靜地躺著缠劝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骗灶。 梳的紋絲不亂的頭發(fā)上惨恭,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音耙旦,去河邊找鬼脱羡。 笑死,一個胖子當(dāng)著我的面吹牛免都,可吹牛的內(nèi)容都是我干的锉罐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼绕娘,長吁一口氣:“原來是場噩夢啊……” “哼脓规!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起险领,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤侨舆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绢陌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挨下,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年脐湾,在試婚紗的時候發(fā)現(xiàn)自己被綠了臭笆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡沥割,死狀恐怖耗啦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情机杜,我是刑警寧澤帜讲,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站椒拗,受9級特大地震影響似将,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚀苛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一在验、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧堵未,春花似錦腋舌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赞辩。三九已至,卻和暖如春授艰,著一層夾襖步出監(jiān)牢的瞬間辨嗽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工淮腾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糟需,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓谷朝,卻偏偏與公主長得像洲押,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子徘禁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理诅诱,服務(wù)發(fā)現(xiàn)髓堪,斷路器送朱,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 通過之前的兩篇我們能在本地搭建單一和集群兩種方式的dubbo服務(wù),這篇我們來看 springmvc+spring+...
    安琪拉_4b7e閱讀 2,144評論 0 6
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • 我們這個年紀(jì)和朋友們坐在一起干旁,永遠(yuǎn)都少不了育兒的話題驶沼。聊工作,覺得自己后勁不足争群;聊家庭回怜,覺得自己悔不及當(dāng)初;唯有聊...
    寒萱子閱讀 550評論 0 3
  • 很多習(xí)慣在電腦上寫文章的朋友大多使用鍵盤輸入换薄,鍵盤輸入的速度雖然很快玉雾,但長期這樣打字的話,頸椎轻要、手指頭都壓力也是蠻...
    緣小異閱讀 25,301評論 0 4