错误代码:
Service层 接口 interface PCI{} 接口实现类 @Service class PCIImpt imeplements PCI{} Controller层 @Autowired private PCIImpt pciImpt; //注入了实现类
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
而正确的写法:*
Controller层 @Autowired private PCI pci; //注入接口以Autowired自动接收 结果:编译通过;
- 1
- 2
- 3
- 4
那么在Service接口有多个ServiceImpt实现类的情况,就需要指定参数名来选择哪个ServiceImpt实现类了。
Service层(此时有两个接口实现类) @Service("PCIImpt1") class PCIImpt1 imeplements PCI{} @Service("PCIimpt2") class PCIImpt2 imeplements PCI{} Controller层 @Resource(name="PCIimpt2") //填PCIimpt1,注入PCIimpt1实现类,填PCIimpt2,则注入PCIimpt2实现类 private PCI pci; //注入接口以Resource手动指定接收
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
同理:在ServiceImpt实现类中也是通过Mapper接口来接收;即:
ServiceImpt实现类 @Autowired private Mapper mapper;