目录
可能没有将所需的类声明为一个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,具体操作如下~