@Autowired 注解有什么作用
@Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为false)。
@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。
扩展
- @Autowired注解默认按照类型容器中找到对应的组件:annotationContext.getBean(Person.class) 。
- 如果找到多个相同类型的组件,再根据属性的名称作为组件id去spring容器中找:annotationContext.getBean(“person”) 。
- required:属性默认为true,表示自动注入的Bean必须能够找到,否则就会报null,设置为false,可以在Spring容器自动注入Bean找不到的话,返回null,不会报错。
- @Autowired可以和@Qualifie注解使用,用来指定注入的组件id,而不是使用属性名。
- @Autowired默认先按Type进行匹配,如果找到多个bean,则又会按照组件id方式进行匹配(需要@Qualifier(“name”)配合)。
- @Autowired表示被修饰的Java类需要注入对象,spring会自动扫描所有被@Autowired标注的类,然后根据在IOC容器中找到匹配的类进行自动注入。
@Autowired的使用范围
@Autowired注解可以使用在很多地方,包括 构造器、方法、参数、成员变量、注解。我们直接从源码中也可以看出