今天下載並搗鼓了一下springboot,然而因為對springboot的不熟悉,導致我想哭,下面說一下慘痛教訓:
下載了springboot工程,然后在src/main/java下面新建了兩個目錄,A和B(兩個完全不相關,用來演示兩個不相關的功能),我把Application.java(springboot啟動類)放在A目錄中;
寫好功能后,在test目錄建立對應目錄進行測試,測試A模塊內容一切正常。繼續測試B模塊內容,然而。。。。。@Autowired 引用的bean一直報錯,說不存在,我反復對比功能A和功能B 500遍,改到幾乎一摸一樣,然后錯誤依舊。我又奮力百度,網上說的72種方法,我都一一試了,要不越改越錯,要不還是老樣子,就這樣,三小時過去了。當我准備眼睛一閉,腿一伸的時候,真神出現了:
“
SpringBoot項目的Bean裝配默認規則是根據Application類所在的包位置從上往下掃描!
“Application類”是指SpringBoot項目入口類。這個類的位置很關鍵:
如果Application類所在的包為:com.boot.app,則只會掃描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,則不會被掃描!
即, 把Application類放到dao、service所在包的上級,com.boot.Application
知道這一點非常關鍵,不知道spring文檔里有沒有給出說明,如果不知道還真是無從解決
“
引自:http://bbs.csdn.net/topics/391978111