Could not autowire. No beans of ‘xx‘ type found异常

目录

可能没有将所需的类声明为一个Bean:

导包导错了,这个就不多说还不赶紧看看自己的包是不是导错了;

配置类可能没有全部加载

XML中忘记生成bean:

idea工具的显示报错:(一般不会是这个问题)


可能没有将所需的类声明为一个Bean:

可能没有将所需的类声明为一个Bean。在Spring中,你可以通过在类上使用@Component(或其派生注解,如@Service、@Repository、@Controller等)来声明一个Bean。你也可以在配置类中使用@Bean注解来声明。

@Componentpublic class MyClass { ... }

或者

@Configurationpublic class MyConfig {@Beanpublic MyClass myClass() {return new MyClass();}}

使用外部组件的时候,可以搜搜看,是不是哪里特殊声明了bean;

    @Beanpublic BS3Client getBS3Client() {return BS3Client.builder().region(Regions.HB1).build();}

导包导错了,这个就不多说还不赶紧看看自己的包是不是导错了;

配置类可能没有全部加载

如果你正在使用Java配置,并且你的Bean在不同的配置类中,你可能需要确保所有需要的配置类都被加载了。你可以在一个配置类中使用@Import来导入其他配置类,或者在你的主应用类上使用@ComponentScan来扫描所有的配置类。

@Configuration@Import(AnotherConfig.class)public class MyConfig { ... }

或者

@SpringBootApplication@ComponentScan(basePackages = {"com.example.package1", "com.example.package2"})public class MyApplication { ... }

XML中忘记生成bean:

如果你正在使用XML配置,你可能没有在XML文件中声明你的Bean,或者你的XML配置文件没有被正确加载。

<bean id="myClass" class="com.example.MyClass" />

idea工具的显示报错:(一般不会是这个问题)

由于idea对相应的检测太过于苛刻,可以适当降低Autowired检测的级别,把Error改成Warning,具体操作如下~

本文链接:https://my.lmcjl.com/post/9921.html

展开阅读全文

4 评论

留下您的评论.