Featured image of post 處理 Mybatis導致的 Parameter 1 of constructor in ...required a bean of type ... that could not be found.

處理 Mybatis導致的 Parameter 1 of constructor in ...required a bean of type ... that could not be found.

幹破你娘SpringBoot 3

省流

如果你是用SpringBoot 3 的話,你的Mybatis版本也要更新到3,不然會一直出現

1
Parameter 1 of constructor in ...required a bean of type ... that could not be found.

這樣的錯誤,把你的pom更新成這樣就可以了

1
2
3
4
5
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>3.0.3</version>
</dependency>

故事

這陣子在做SideProject,想練習redis, rebbitMQ, 以及Elastic Search。在引入MyBatis時出現了一個錯誤(圖是網路找的)

image-20231204163300670

當時百思不得其解,我該加的Annotation加了,my-batis xml也配了,該處理的都處理了,但不知道為什麼就是找不到,期間來回試了多種方法,用ApplicationContext去找bean呀,改成用setter注入呀之類的方式都不行,大概這樣來回折騰了三四個小時。

後來實在沒辦法,跑去執行以前的專案,發現相同的配置下不知道為什麼跑得起來,但我的就不行,於是就想到了

「阿幹你媽的,SpringBoot最近好像升級到3.0了」

fozzy-fuck-gif

(不管是IDEA或是Spring Initializr都沒辦法在下載2.0版本的SpringBoot了)

image-20231204163535485

然後順著這個線索,到我的POM裡面去看,果然看到了我的MyBatis版本還留在2.0版,接著重新找一個支援3.0的版本

Shift shift -> reload maven project

這樣就可以運行起來了。順便抱怨一下,3.0好像有更新過了,我記得剛出來的時候還強制要寫dockerfile = =

最近在創建新專案的時候就沒這個問題了

Licensed under CC BY-NC-SA 4.0