Springboot 測試類沒有找到bean注入


其他亂七八糟配置就不扯了,先上項目結構圖

 

 配置好參數后我再src/test/java類測試訪問數據庫時發現bean沒有正確的注入。值得注意的是,這個項目的啟動類是叫App.java

所以我們必須在這個測試類上面加上注解:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class) 

注意:SpringBoot(classes = App.class) classes后面跟的是啟動類的class,千萬不要隨便抄網上的配置,寫一些Application.class之類的,這種Application之類的類名和一些官方包里的類名一樣,容易引入錯誤的包。

剛開始發現這個問題瘋狂去網上看別人的配置文件是怎么寫的,試了一天都沒用,后來靜下心來,把錯誤信息copy出來文本里仔細看

org.springframework.beans.factory.UnsatisfiedDependencyException:
 Error creating bean with name 'com.springboot.LibrarySystem.mapper.UserMapperTest':
 Unsatisfied dependency expressed through field 'userMapper'; 
 nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
 No qualifying bean of type 'com.sb.LibrarySystem.mapper.UserMapper' 
 available: expected at least 1 bean which qualifies as autowire candidate. 
 Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

還是從這個Test類下手

本來我的類是這樣的:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class UserMapperTest {
}

修改后就是這樣,和我的啟動類的類名是一致的:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
public class UserMapperTest {

完美解決!

如果百度的時候,發現查看的問題越來越深,越來越偏離最開始的問題,那十有八九是方向偏了,重新整理一下,重新開始吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM