我有UserService和MissionService。

可以在UserSerivce中注入(inject)MissionService吗?反之亦然?

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

最佳答案

当然可以,而且很好。但是我建议您使用方法注入(inject),以便允许您在运行时设置实例而不使用反射(可以手动创建实例)。

例如:

@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);

警告:您必须注意不要建立依赖循环。 我认为Spring并没有解决它们

08-07 03:18