@autowired 注解注入了什么
时间: 2023-09-23 20:06:13 浏览: 86
@Autowired注解可以用来自动注入Spring容器中的Bean对象。具体来说,它会根据类型进行自动注入,即根据被注入的属性的类型,在Spring容器中查找与之匹配的Bean对象,并将其注入到该属性中。
例如,如果一个类中有一个属性声明了@Autowired注解,且这个属性的类型为UserService,那么Spring容器会在启动时查找是否有一个名为"userService"的Bean对象,如果找到了,则将其注入到该属性中。
如果有多个与之匹配的Bean对象,可以使用@Qualifier注解指定具体要注入哪个Bean对象。如果没有找到与之匹配的Bean对象,会抛出NoSuchBeanDefinitionException异常。
需要注意的是,@Autowired注解只能注入Bean对象,不能注入基本类型或String类型的值。如果需要注入基本类型或String类型的值,可以使用@Value注解。
相关问题
@autowired注解注入为null
如果@Autowired注解注入的对象为null,可能是因为:
1. 没有为被注入的类型找到合适的bean实例。
2. 有多个bean实例与被注入的类型匹配,无法确定注入哪一个。
3. 注入的属性上没有加@Autowired注解。
建议检查配置文件是否正确,是否存在多余的相同类型的bean,被注入属性是否加了注解等。
Spring@autowired注解注入为null
当使用`@Autowired`注解进行依赖注入时,如果注入的对象为`null`,有以下几种可能性:
1. 检查注入的对象是否被Spring容器管理:使用`@Autowired`注解需要被注入的对象必须被Spring容器管理,否则会注入失败。可以使用`@Component`或者其他的注解(如`@Service`、`@Repository`等)将该对象标记为Spring容器管理的Bean。
2. 检查注入的对象是否存在:如果注入的对象不存在,那么注入会失败,因此需要检查注入的对象是否在Spring容器中被正确的创建。
3. 检查注入的对象是否有多个实现类:如果注入的接口有多个实现类,则需要使用`@Qualifier`注解指定具体的实现类。
4. 检查注入的对象是否为静态属性:静态属性不能使用`@Autowired`注解注入,因为静态属性是类级别的,而不是对象级别的。
5. 检查注入的对象的构造方法:如果注入的对象的构造方法中有参数,需要确保这些参数也被正确的注入。
希望以上解答能够帮助你解决问题。
阅读全文
相关推荐














