@Autowired注解详解

@Autowired注解详解

1. 范围

@Autowired注解可以对类成员变量(属性)、方法及构造函数进行标注,完成自动装配的工作。

2. 使用

spring项目启动的时候会把所有标识为(@Service或@Controller或@Component或@Repository)的类初始化实例放入IOC容器中,
@Autowired注解默认是根据属性类型从IOC容器中自动将匹配到的属性值进行注入;
当标注的属性是接口时,其实注入的是这个接口的实现类,
如果这个接口有多个实现类,只使用@Autowired就会报错,因为它默认是根据类型找,然后就会找到多个实现类bean,所有就不知道要注入哪个。
然后它就会根据属性名去找。所以如果有多个实现类可以配合@Qualifier(value=“类名”)来使用 (是根据名称来进行注入的)

3. 实例:

@RestController
@RequestMapping("/good")
public class HelloController {

    @Autowired
    private CommDataSource commDataSource;

    @Autowired
    @Qualifier("peachTreeServiceImpl")
    private TreeService treeService;

    @Autowired
    @Qualifier("pearTreeServiceImpl")
    private TreeService pearService;

    @GetMapping("/hello")
    public String hello(){

        commDataSource.print();

        treeService.test();
        pearService.test();

        return "hello Spring boot ||||||||";
    }
}

你可能感兴趣的:(spring,boot,java,spring)