public class AreaServiceTest extends BaseTest{
@Autowired //这个@Autowired标注在Service接口上
private AreaService areaService;
@Test
public void testGetAreaList() {
List<Area> areaList = areaService.getAreaList();
}
}
@Autowired的作用:自动装配
自动装配实现了service接口的实例,只有serviceImpl实现了service接口,所以会注入serviceImpl
结论就是:注入的是实现类对象,接收的接口;理解为多态;(Controller–Service–ServiceImpt–Mapper)
在没有使用Maven中央仓库的时候,可以使用@Autowired标注在实现类上,直接注入实现类。
@Autowired
private ServiceImpl serviceImpl; //直接注入实现类
//结果:编译通过
但是,使用Maven中央仓库的时候,会编译报错
@Autowired
private ServiceImpl serviceImpl; //直接注入实现类
//结果:编译报错