1. 程式人生 > >Intellij IDEA 2017建立SSM入門專案及相關配置

Intellij IDEA 2017建立SSM入門專案及相關配置

前言

  • 本文主要講解Intellij IDEA建立SSM入門專案
  • 本文不會講解SSM的理論知識
  • 本文所建專案未用到maven進行管理
  • 本文篇幅很長,請配同目錄享用

環境說明

  • Intellij IDEA 2017.2.6
  • Apache-tomcat-8.5.23
  • jdk 1.8
  • MySQL 5.7
  • Windows 10

版本說明

  • Spring-4.3.14
  • MyBatis-3.4.4
  • c3p0-0.9.2.1
  • Aspectj-1.8.13
  • Junit-4.10
  • Log4j-1.2.17

建立專案

建立Spring專案,並勾選如圖所示,next 這裡寫圖片描述

填寫專案名稱和路徑,finish 這裡寫圖片描述

(這裡為做測試所用,隨意寫的專案名稱,路徑用的預設路徑)

等待jar包下載,可能需要幾分鐘,看自己的網速啦 這裡寫圖片描述

匯入jar包與Build Path

1、導包

在Spring、Spring MVC、MyBatis進行整合的過程中,除了IDEA為我們提供的Spring的JAR包外,我們還需要另外的許多jar包,如圖 這裡寫圖片描述

這裡寫圖片描述

注:jar包前邊有一個尖角符號的為IDEA為我們提供的,其餘為我們自己新增  另附上SSM整合JAR包下載

2、Build Path

在我們進行匯入jar包後,IDEA並不會直接進行Build Path,在這裡我們需要進行手動Build Path 這裡寫圖片描述

這裡寫圖片描述

apply,OK

建立資料夾並指定型別

這裡寫圖片描述

注:上圖中的資料夾並非需要全部建立,看個人的專案需求,在這裡我主要是將SSM專案所需的大部分資料夾建立,因為本文只講解SSM專案的建立與相關配置,所以絕大部分資料夾是用不到的,大家忽略就行了

指定相應資料夾型別

“java”資料夾為”Sources” 這裡寫圖片描述

“resources”資料夾為“Resouces”型別 這裡寫圖片描述

“test”資料夾為“Test”型別 這裡寫圖片描述

配置Spring

0、Spring初始及監聽器

強大的IDEA已經幫我們在web.xml檔案中為我們配置好了,我們檢視下。 這裡寫圖片描述

至於為什麼需要這一步,你去google、百度問問,相信你會對於Spring有一個更深的瞭解

1、建立Spring配置檔案

在我們使用IDEA建立SSM專案的時候,IDEA已經給我們自動生成了spring的配置檔案applicationContext.xml 這裡寫圖片描述

在這裡我們將配置檔案的位置進行調整下,即將applicationContext.xml檔案移動到resources目錄下的spring資料夾

這裡寫圖片描述

2、建立bean配置檔案

在實際的開發專案中,特別是遇稍具規模的專案,可能會有多個bean需要在spring中進行注入,所以我們推薦將各個bean的注入進行配置檔案分離

建立配置檔案如圖:

這裡寫圖片描述

增加配置檔案如圖,並在applicationContext.xml配置檔案中進行匯入配置 這裡寫圖片描述 注:現目前幾個配置檔案中的內容為空

3、配置aop

建立aop-config.xml配置檔案,並在applicationContext.xml配置檔案進行匯入 這裡寫圖片描述

在aop-config.xml配置檔案中進行配置

<span style="color:rgba(0, 0, 0, 0.75)"><span style="color:#000000"><code>    <span style="color:#880000"><!--aop註解方式--></span>
    <span style="color:#006666"><<span style="color:#4f4f4f">aop:aspectj-autoproxy</span>></span><span style="color:#006666"></<span style="color:#4f4f4f">aop:aspectj-autoproxy</span>></span>

    <span style="color:#006666"><<span style="color:#4f4f4f">aop:config</span> <span style="color:#4f4f4f">proxy-target-class</span>=<span style="color:#009900">"true"</span>></span><span style="color:#006666"></<span style="color:#4f4f4f">aop:config</span>></span>
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5

4、配置事務

由於配置事務需要用到資料來源,所以將事務配置放於配置MyBatis後

配置MyBatis

1、建立測試用的資料庫和表

<span style="color:rgba(0, 0, 0, 0.75)"><span style="color:#000000"><code><span style="color:#000088">create</span> <span style="color:#000088">database</span> test;
<span style="color:#000088">create</span> <span style="color:#000088">table</span> <span style="color:#000088">user</span>(id <span style="color:#000088">int</span>,name <span style="color:#000088">varchar</span>(<span style="color:#006666">20</span>),password <span style="color:#000088">varchar</span>(<span style="color:#006666">40</span>));</code></span></span>
  • 1
  • 2

2、建立db.properties,並編寫相關引數

這裡寫圖片描述

<span style="color:rgba(0, 0, 0, 0.75)"><span style="color:#000000"><code>jdbc<span style="color:#009900">.driver</span>=<span style="color:#000088">com</span><span style="color:#009900">.mysql</span><span style="color:#009900">.jdbc</span><span style="color:#009900">.Driver</span>
<span style="color:#009900">#資料庫地址</span>
jdbc<span style="color:#009900">.url</span>=jdbc:mysql://<span style="color:#006666">127.0</span><span style="color:#006666">.0</span><span style="color:#006666">.1</span>:<span style="color:#006666">3306</span>/test?userUnicode=true&characterEncoding=utf-<span style="color:#006666">8</span>
<span style="color:#009900">#使用者名稱</span>
jdbc<span style="color:#009900">.username</span>=root
<span style="color:#009900">#密碼</span>
jdbc<span style="color:#009900">.password</span>=root
<span style="color:#009900">#最大連線數</span>
c3p0<span style="color:#009900">.maxPoolSize</span>=<span style="color:#006666">30</span>
<span style="color:#009900">#最小連線數</span>
c3p0<span style="color:#009900">.minPoolSize</span>=<span style="color:#006666">10</span>
<span style="color:#009900">#關閉連線後不自動commit</span>
c3p0<span style="color:#009900">.autoCommitOnClose</span>=false
<span style="color:#009900">#獲取連線超時時間</span>
c3p0<span style="color:#009900">.checkoutTimeout</span>=<span style="color:#006666">10000</span>
<span style="color:#009900">#當獲取連線失敗重試次數</span>
c3p0<span style="color:#009900">.acquireRetryAttempts</span>=<span style="color:#006666">2</span></code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

我建議自己進行所有的程式碼都自己敲,加深印象,特別是初學SSM的小夥伴

3、建立c3p0.xml配置檔案,配置c3p0連線池

這裡寫圖片描述

<span style="color:rgba(0, 0, 0, 0.75)"><span style="color:#000000"><code>    <span style="color:#880000"><!--資料庫配置引數--></span>
    <span style="color:#006666"><<span style="color:#4f4f4f">context:property-placeholder</span> <span style="color:#4f4f4f">location</span>=<span style="color:#009900">"properties/db.properties"</span>/></span>

    <span style="color:#880000"><!--連線c3p0連線池--></span>
    <span style="color:#006666"><<span style="color:#4f4f4f">bean</span> <span style="color:#4f4f4f">id</span>=<span style="color:#009900">"comboPooledDataSource"</span> <span style="color:#4f4f4f">class</span>=<span style="color:#009900">"com.mchange.v2.c3p0.ComboPooledDataSource"</span>></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"driverClass"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${jdbc.driver}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"jdbcUrl"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${jdbc.url}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"user"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${jdbc.username}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"password"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${jdbc.password}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"maxPoolSize"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${c3p0.maxPoolSize}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"minPoolSize"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${c3p0.minPoolSize}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"autoCommitOnClose"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${c3p0.autoCommitOnClose}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"checkoutTimeout"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${c3p0.checkoutTimeout}"</span>/></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"acquireRetryAttempts"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"${c3p0.acquireRetryAttempts}"</span>/></span>
    <span style="color:#006666"></<span style="color:#4f4f4f">bean</span>></span>
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

4、建立mybatis-config.xml配置檔案

在Spring整合MyBatis後,我們直接廢棄MyBatis的配置檔案,轉而用spring的配置檔案,進行配置mybatis

這裡寫圖片描述

說明:

  • 引入c3po.xml配置檔案
  • 配置資料來源
  • 掃描mapper包,實現mapper介面和mapper.xml配置檔案的分離(原來的規範是介面和XML配置檔案必須放在同一目錄)
  • 這裡就不貼程式碼了,大家都手動敲擊吧

別忘記在applicationContext.xml配置檔案中進行引入mybatis-config.xml檔案喲

5、Spring配置之配置事務

在實際開發專案中,一般都會進行事務的配置,

這裡寫圖片描述

同樣的,在applicationContext.xml檔案引入。

此時,事務已經配置好了,一般我們會在service層上使用事務,只需要在service類上加上事務註解即可。

注:在本入門專案中並未使用事務管理,所以我們這裡只是進行配置的演示。

配置Spring MVC

1、web.xml配置

在此,我們就使用IDEA中直接生成的web.xml配置檔案,注意配置的路徑

這裡寫圖片描述

2、dispatcher-servlet.xml配置

這裡寫圖片描述

至此,SSM基本配置完成

測試Spring整合MyBatis

0、如需檢視Spring整合MyBatis知識請訪問

1、建立JavaBean

建立User類 這裡寫圖片描述 注入類 這裡寫圖片描述

2、建立dao介面

建立IUserDao介面 這裡寫圖片描述注:此處測試使用的是mapper代理開發方式

3、mapper.xml配置檔案

建立UserMapper配置檔案 這裡寫圖片描述

注入UserMapper 這裡寫圖片描述

4、測試方法

這裡寫圖片描述

這裡寫圖片描述

測試綠條,並且打印出了id為1的使用者的姓名,表示測試成功

測試Spring MVC

0、Spring MVC測試專案可參考

1、建立hello.jsp

這裡寫圖片描述

2、controller編寫

這裡寫圖片描述

3、專案部署

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

4、啟動伺服器進行測試

在這裡我出現了關於listener啟動失敗的錯誤 這裡寫圖片描述

由於博主在查資料查了三個小時沒有解決這個問題,我只能暫時先不用監聽器,在此我先遮蔽監聽器

這裡寫圖片描述

注:我將在後邊釋出關於listener啟動失敗的解決辦法,還望知道原因的朋友能夠評論或者私信我,謝謝

時間分割線

錯誤解決補更

一不小心就過去了半個多月的時間了,過年過得開心啦。  回學校的第二天就抓緊來修復這個問題。

注:回來後我按照上邊的教程進行了一步一步傻瓜式的配置,但在Spring中Bean管理時,我沒有使用XML配置檔案的方式,而是採用了註解的方式進行,完成程式碼在文末有下載連結。當然,大家也可以使用原來的專案進行錯誤的修復即可,並不會影響。

仔細一看,上邊錯誤提示叫我們看錯誤日誌。

好吧,那我就編寫了log4j檔案,置於src目錄下。

再次啟動伺服器,檢視錯誤日誌: 這裡寫圖片描述

仔細一讀,發現是我mapper路徑的問題,將Spring配置檔案中,配置MyBatis更改如下。

<span style="color:rgba(0, 0, 0, 0.75)"><span style="color:#000000"><code>    <span style="color:#880000"><!--配置MyBatis--></span>
    <span style="color:#006666"><<span style="color:#4f4f4f">bean</span> <span style="color:#4f4f4f">class</span>=<span style="color:#009900">"org.mybatis.spring.SqlSessionFactoryBean"</span>
          <span style="color:#4f4f4f">id</span>=<span style="color:#009900">"sqlSessionFactory"</span>></span>
        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"dataSource"</span> <span style="color:#4f4f4f">ref</span>=<span style="color:#009900">"comboPooledDataSource"</span>/></span>

        <span style="color:#006666"><<span style="color:#4f4f4f">property</span> <span style="color:#4f4f4f">name</span>=<span style="color:#009900">"mapperLocations"</span> <span style="color:#4f4f4f">value</span>=<span style="color:#009900">"classpath:mapper/*.xml"</span>/></span>
    <span style="color:#006666"></<span style="color:#4f4f4f">bean</span>></span></code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

正常跳轉,測試成功。 這裡寫圖片描述

程式碼下載