AutoWired注解在自动装配的时候,过程大概如下:
- 首先去根据类型在容器中找对应的组件,如果找到一个,就装配
- 如果找到多个,那么再次根据变量名作为id来进行匹配
2.1 如果匹配成功,那么就装配
2.2 如果匹配不成功,有可能是因为变量名写的和默认的id不一致导致的,比如容器中的组件的id是carService,但是变量名是car1,这样无法匹配。Qualifier注解可以指定新id,这样变量名就可以不用和组件的id保持一致。 - 如果没找到
3.1 根据AutoWired的默认设置,如果找不到那么就会抛出异常。
3.2 可以在AutoWired注解的required设置为false,那么在没有找到从而无法装配的时候不会抛出异常。