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
正常跳轉,測試成功。