所以我尝试使用在另一个类中生成的 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
提交
取消