在另一个服务中注入服务

2022-09-01 14:43:35

我有UserService和MissionService。

是否可以在 UserSerivce 中注入 MissionService,反之亦然?

如果是,那么单元测试呢?


答案 1

当然可以,而且完全没问题。但是我建议您使用方法注入,以便允许您在运行时设置实例,而无需使用反射(您可以手动创建实例)。


例如:

@Service
public class MissionService { }

@Service
public class UserService {
    private MissionService missionService;

    @Autowired
    public void setMissionService(MissionService missionService) {
        this.missionService = missionService;
    }
}

这允许您在没有Spring的情况下使用常规Java创建这两个服务:

MissionService missionService = new MissioNService();
UserService userService = new UserService();
userService.setMissionService(missionService);

注意:您必须注意不要构建依赖关系周期。我认为,春天不会解决它们。


答案 2

推荐