錯誤訊息「Field required a bean of type that Could not be find」表示Spring無法找到依賴注入所需的bean。當 bean 未在 Spring 應用程式上下文中正確配置或註冊時,可能會發生這種情況。
在這種情況下,錯誤指向 UsersController 類別中的 UserService 相依性。 UserService 介面在服務包中聲明,但未在任何設定檔中註冊為 Bean。
要解決此錯誤,必須將 UserService 介面註冊為 Bean。這可以透過多種方式實現:
1。使用@Configuration類:
建立一個專用的設定類,並用@Configuration註解。在類別內部,使用 @Bean 註解為 UserService 定義 bean 定義。
<code class="java">@Configuration public class ServiceConfig { @Bean public UserService userService() { return new UserServiceImpl(); } }</code>
2.使用 XML Bean 定義:
在 src/main/resources 目錄下名為 Beans.xml 的 XML 設定檔中定義 Bean 定義。
<code class="xml"><beans> <bean id="userService" class="main.java.service.UserServiceImpl" /> </beans></code>
3 。使用@SpringBootApplication(scanBasePackages)註解:
在使用@SpringBootApplication註解的主應用程式類別中,使用scanBasePackages屬性指定bean定義所在的套件。
<code class="java">@SpringBootApplication(scanBasePackages={"main.java.service"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }</code>
4。修改套件結構:
如果 Bean 位於預設掃描路徑之外的不同模組或套件中,請考慮重構項目以確保 Bean 的套件包含在掃描中。將 UserService 介面和實作移至控制器和服務模組均可存取的共用包。
以上是如何使用 MongoDB 修復 Spring RESTful API 中的「缺少 Bean」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!