- 名師講壇:Spring實(shí)戰(zhàn)開發(fā)(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- 李興華
- 451字
- 2020-04-24 14:20:43
2.4 SpringTest測(cè)試
前面通過(guò)ApplicationContext啟動(dòng)了Spring容器,并實(shí)現(xiàn)了配置文件的加載,但這樣處理并不能體現(xiàn)出Spring的運(yùn)行特征。為了更好地還原現(xiàn)實(shí)的開發(fā)場(chǎng)景,可利用SpringTest依賴庫(kù)和JUnit實(shí)現(xiàn)測(cè)試環(huán)境下的Spring容器啟動(dòng),且可以使用@Resource代替getBean方法實(shí)現(xiàn)自動(dòng)注入。
1.【mldnspring項(xiàng)目】修改pom.xml配置文件,追加spring-test依賴庫(kù)。

2.【mldnspring-base項(xiàng)目】修改pom.xml配置文件,在子模塊中引入Spring相關(guān)測(cè)試依賴庫(kù)。由于這里要基于JUnit工具實(shí)現(xiàn)測(cè)試,所以還需要引入junit測(cè)試依賴庫(kù)。

3.【mldnspring-base項(xiàng)目】編寫程序測(cè)試類。

本程序盡可能還原了Spring容器的實(shí)際運(yùn)行環(huán)境。對(duì)它做如下幾點(diǎn)說(shuō)明。
@ContextConfiguration:表示Spring配置文件所在的目錄。本程序通過(guò)classpath進(jìn)行加載,由于src/main/resources屬于源目錄,所以目錄中保存的所有資源將自動(dòng)設(shè)置在CLASSPATH之中。
@RunWith(SpringJUnit4ClassRunner.class):表示要使用的測(cè)試工具類型。
@Resource:表示資源注入配置。首先會(huì)根據(jù)類型進(jìn)行匹配,由于在spring-base.xml文件中配置的是MessageImpl子類,所以會(huì)自動(dòng)與IMessage接口對(duì)應(yīng)實(shí)現(xiàn)對(duì)象注入。如果有需要,也可以利用具體名稱進(jìn)行注入。
范例:設(shè)置具體的Bean名稱。

@Resource注解中,代碼name="messageImpl"中的名稱就是spring-base.xml配置文件中<bean>元素id屬性設(shè)置的名稱。利用這種模式,可以避免一個(gè)接口、多個(gè)實(shí)例存在時(shí)無(wú)法匹配的問(wèn)題。
- Learning ROS for Robotics Programming(Second Edition)
- Learning Chef
- Python爬蟲開發(fā):從入門到實(shí)戰(zhàn)(微課版)
- Magento 2 Theme Design(Second Edition)
- Magento 2 Development Cookbook
- Java游戲服務(wù)器架構(gòu)實(shí)戰(zhàn)
- C/C++常用算法手冊(cè)(第3版)
- 青少年P(guān)ython編程入門
- HTML5+CSS3網(wǎng)頁(yè)設(shè)計(jì)
- Scala編程實(shí)戰(zhàn)(原書第2版)
- Mastering JavaScript Design Patterns(Second Edition)
- C#程序設(shè)計(jì)(項(xiàng)目教學(xué)版)
- 一本書講透Java線程:原理與實(shí)踐
- Oracle實(shí)用教程
- Python Projects for Kids