抛出 NoSuchBeanDefinitionException

所以我尝试使用在另一个类中生成的 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。我可以做什么来修复此错误并避免以后出现同样的问题


慕神8447489
浏览 66回答 1
1回答

泛舟湖上清波郎朗

放入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})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java