所以我嘗試使用在另一個類中生成的 bean 以在主應用程序中使用 package com.simon.spring.basics.properties; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class SomeExternalService { @Value("${external.service.url}") private String url; public String returnServiceURL(){ return url; } }主要應用程序在這里: package com.simon.spring.basics.springin5steps; import com.simon.spring.basics.properties.SomeExternalService; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource;@Configuration @SpringBootApplication //@PropertySource("classpath:application.properties") @ComponentScan() public class SpringIn5StepsPropertiesApplication { public static void main(String[] args) { ApplicationContext applicationContext = SpringApplication.run(SpringIn5StepsPropertiesApplication.class, args); SomeExternalService service = applicationContext.getBean(SomeExternalService.class); System.out.println(service); }}所以基本上線程“main”org.springframework.beans.factory.NoSuchBeanDefinitionException中的異常:沒有拋出類型為“com.simon.spring.basics.properties.SomeExternalService”的合格bean。我可以做什么來修復此錯誤并避免以后出現同樣的問題
1 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
放入SpringIn5StepsPropertiesApplication
你的包根目錄;
package com.simon.spring.basics
也刪除不必要的@ComponentScan()
@SpringBootApplication
將自動觸發從主類位置(即 )下的所有包下的組件掃描,以便可以拾取com.simon.spring.basics
您的組件。com.simon.spring.basics.properties
否則它會嘗試查找下面的beancom.simon.spring.basics.springin5steps
但找不到SomeExternalService
如果移動主類不是一個選項,那么您可以添加其他包,例如;
@SpringBootApplication(scanBasePackageClasses = {com.simon.spring.basics.properties.SomeExternalService.class})
添加回答
舉報
0/150
提交
取消