开发过程中我们经常遇到循环依赖的问题,例如模块A依赖模块B,如果B也要用到A中的方法,我们在B的pom.xml文件中也引入A,则会出现循环依赖。SpringBoot提供了@Qualifier注解来帮助我们解决循环依赖问题。
例如我们有两个模块sdata-datasource(A)和sdata-system(B),我们可以看到sdata-datasource(A)的pom.xml中有sdata-system(B)的依赖,此刻我们想要在sdata-system(B)中使用sdata-datasource(A)中的方法:
- 1.在sdata-system(B)中定义一个接口IDataSource4SysService(InterfaceB)
- 2.在sdata-datasource(A)中写一个IDataSource4SysServiceImpl(A’),实现IDataSource4SysService(InterfaceB)接口,在IDataSource4SysServiceImpl(A‘)中写sdata-system(B)要用到的方法
- 3.通过@Qualifier注解在sdata-system(B)中引入IDataSource4SysServiceImpl(A’)