service实现层循环注入
场景:在三层结构中,两个service层互相引用依赖注入
/**
* @author yy
* @date 2020-12-16
*/
@Service
public class AServiceImpl extends BaseServiceImpl<AMapper, A> implements AService {
@Autowired
private final UserService userService;
}
/**
* @author yy
* @date 2020-12-16
*/
@Service
public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implements UserService {
@Autowired
private final AService aService;
}
如上:当两个serviceImpl层互相引用依赖注释对方的service时
解决方法1,将AServiceImpl中的引用
@Autowired
private final UserService userService;
替换为Mapper层:
@Autowired
private UserMapper userMapper;
解决方法2,使用@Lazy注解(注:两个注入的地方都需要加)
/**
* @author yy
* @date 2020-12-16
*/
@Service
public class AServiceImpl extends BaseServiceImpl<AMapper, A> implements AService {
@Lazy
@Autowired
private final UserService userService;
}
/**
* @author yy
* @date 2020-12-16
*/
@Service
public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implements UserService {
@Lazy
@Autowired
private final AService aService;
}