yName的方式,在IOC容器中匹配id和属性名相同的bean,为属性赋值
如果有多个类型匹配的bean,且在IOC容器中没有找到id和属性名相同的bean;
则可以使用@Qualifier注解指定某个bean的id,将这个bean赋值给属性
如果有多个类型匹配的bean,且在IOC容器中没有找到id和属性名相同的bean,也没有使用@Qualifier注解指定将某个bean赋值给属性;则会抛出异常NoUniqueBeanDefinitionException
@Autowired
@Qualifier("myUserService")
private UserService userService;
8.4、@Autowired的注意事项
在@Autowired注解中有一个属性required,默认值为true,意思是必要完成自动装配
如果在IOC容器中没有匹配的bean,就会抛出异常NoSuchBeanDefinitionException
为此可以将required属性的值设置为false,这样能装配就装配,不能装配就使用默认值
一般可以通过排查组件注解、组件扫描和@Qualifier注解,定位出为什么在IOC容器中没有匹配的bean
@Autowired(required = false)
private UserService userService;