前言
- 本文主要講解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配置文件中進行配置
<!--aop註解方式-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<aop:config proxy-target-class="true"></aop:config>
4、配置事務
由於配置事務需要用到數據源,所以將事務配置放於配置MyBatis後
配置MyBatis
1、創建測試用的數據庫和表
create database test;
create table user(id int,name varchar(20),password varchar(40));
2、創建db.properties,並編寫相關參數
jdbc.driver=com.mysql.jdbc.Driver
#數據庫地址
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?userUnicode=true&characterEncoding=utf-8
#用戶名
jdbc.username=root
#密碼
jdbc.password=root
#最大連接數
c3p0.maxPoolSize=30
#最小連接數
c3p0.minPoolSize=10
#關閉連接後不自動commit
c3p0.autoCommitOnClose=false
#獲取連接超時時間
c3p0.checkoutTimeout=10000
#當獲取連接失敗重試次數
c3p0.acquireRetryAttempts=2
我建議自己進行所有的代碼都自己敲,加深印象,特別是初學SSM的小夥伴
3、創建c3p0.xml配置文件,配置c3p0連接池
<!--數據庫配置參數-->
<context:property-placeholder location="properties/db.properties"/>
<!--連接c3p0連接池-->
<bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
<property name="minPoolSize" value="${c3p0.minPoolSize}"/>
<property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/>
<property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/>
<property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
</bean>
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入門之事務管理【二】註解方式
配置Spring MVC
1、web.xml配置
在此,我們就使用IDEA中直接生成的web.xml配置文件,注意配置的路徑
2、dispatcher-servlet.xml配置
至此,SSM基本配置完成
測試Spring整合MyBatis
0、如需查看Spring整合MyBatis知識請訪問
MyBatis入門【十二】 Spring整合MyBatis基礎
1、創建JavaBean
創建User類
注入類
2、創建dao接口
創建IUserDao接口
注:此處測試使用的是mapper代理開發方式
3、mapper.xml配置文件
創建UserMapper配置文件
注意圖中標紅區域的配置,配置詳情請猛擊MyBatis入門【三】Mapper開發基礎
注入UserMapper
4、測試方法
測試綠條,並且打印出了id爲1的用戶的姓名,表示測試成功
測試Spring MVC
0、Spring MVC測試項目可參考
1、創建hello.jsp
2、controller編寫
3、項目部署
4、啓動服務器進行測試
在這裏我出現了關於listener啓動失敗的錯誤
由於博主在查資料查了三個小時沒有解決這個問題,我只能暫時先不用監聽器,在此我先屏蔽監聽器
重啓服務器,輸入http://localhost:8080/ssmdemo/test/hello進行測試
測試成功
注:我將在後邊發佈關於listener啓動失敗的解決辦法,還望知道原因的朋友能夠評論或者私信我,謝謝
時間分割線
錯誤解決補更
一不小心就過去了半個多月的時間了,過年過得開心啦。
回學校的第二天就抓緊來修復這個問題。
注:回來後我按照上邊的教程進行了一步一步傻瓜式的配置,但在Spring中Bean管理時,我沒有使用XML配置文件的方式,而是採用了註解的方式進行,完成代碼在文末有下載鏈接。當然,大家也可以使用原來的項目進行錯誤的修復即可,並不會影響。
仔細一看,上邊錯誤提示叫我們看錯誤日誌。
好吧,那我就編寫了log4j文件,置於src目錄下。
再次啓動服務器,查看錯誤日誌:
仔細一讀,發現是我mapper路徑的問題,將Spring配置文件中,配置MyBatis更改如下。
<!--配置MyBatis-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean"
id="sqlSessionFactory">
<property name="dataSource" ref="comboPooledDataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
進行重新啓動服務器,無錯誤,在瀏覽器地址欄輸入http://localhost:8080/ssmdemo06/test/hello進行測試。
正常跳轉,測試成功。
代碼下載
完整項目代碼下載:ssmdemo