为了账号安全,请及时绑定邮箱和手机立即绑定

抛出 NoSuchBeanDefinitionException

抛出 NoSuchBeanDefinitionException

慕神8447489 2023-09-20 15:30:15
所以我尝试使用在另一个类中生成的 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})


查看完整回答
反对 回复 2023-09-20
  • 1 回答
  • 0 关注
  • 42 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信