springboot 無法自動裝配的問題

springboot 無法自動裝配

@Autowired 報錯:無法自動裝配

基本上是因為

1、項目裡有類似mybatis @Mapper這種第三方映射類,需要用到springboot autoconfigration掃描解析。

2、@SpringBootApplication類,沒有放到java根目錄下

放到org.example下,問題解決

原因

因為springboot隻掃描@SpringBootApplication類目錄及子目錄下的自動配置:

For example, it will be used when scanning for @Entity classes. It is generally recommended that you place @EnableAutoConfiguration (if you're not using @SpringBootApplication) in a root package so that all sub-packages and classes can be searched.

真想罵他一句,約定就約定吧,能聰明點嗎

無法自動裝配。未找到“xxxMapper”類型的bean

Could not autowire. No beans of ‘xxxMapper’ type found.

說明Spring框架沒有識別到你的xxxMapper中的類

也就是說,xxxMapper的類沒有被Spring框架給管理,如果你所需要的類需要給Spring給管理,那麼你得在他上面加上@Repository註解,這樣你在service層自動註入時他才不會報錯。

如果你得類不需要管理或者繼承或實現一些規則

並且程序沒有產生一些錯誤,那麼這些都是可以被允許的。

@Repository
public interface AdminMapper  {
    public void xxx(){}
}
public class AdminServiceImpl  {
    @Autowired
    private AdminMapper adminMapper;
    }

這樣他就不會報錯瞭。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: