autowired注入的对象为null
时间: 2023-04-30 16:01:13 浏览: 334
@Autowired注入为null问题原因分析
5星 · 资源好评率100%
autowired注入的对象为null可能是因为以下原因:
1. 没有在Spring容器中正确地声明该对象的bean。在使用@Autowired注解时,Spring会在容器中查找该对象的bean,如果没有找到,则会注入null。
2. 该对象的bean被声明为prototype作用域,而在注入时使用了singleton作用域。在这种情况下,Spring会在容器中创建一个新的prototype bean实例,并将其注入singleton bean中。由于该对象的bean是prototype作用域,因此在注入后,该对象的bean实例将不再与容器中的任何其他bean共享,因此它的值将为null。
3. 该对象的bean被声明为lazy-init="true",而在注入时使用了非lazy-init的bean。在这种情况下,Spring会在第一次使用该对象的bean时才创建它。如果在注入时该对象的bean还没有被创建,则会注入null。
4. 该对象的bean被声明为@Conditional注解,而该条件未被满足。在这种情况下,Spring不会创建该对象的bean实例,并将其注入null。
如果以上情况都不是问题所在,可以尝试使用@Qualifier注解指定要注入的bean的名称,或者使用@Resource注解进行注入。
阅读全文