global_services_injection.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'package:domain/constants/api_constants.dart';
  2. import 'package:domain/repository/auth_repository.dart';
  3. import 'package:plugin_basic/basic_export.dart';
  4. import 'package:plugin_basic/service/user_service.dart';
  5. import 'package:plugin_platform/http/http_provider.dart';
  6. import 'package:shared/utils/log_utils.dart';
  7. /*
  8. 全局服务 Service 的初始化入口
  9. 1. 默认注入网络请求Provider与Domain的Repository
  10. 2. 留下高阶函数的入口,方便加入其他的全局服务
  11. 全局单例服务的注入,在 main.dart 入口就可直接调用,注意手动调用
  12. */
  13. class GlobalServicesInjection {
  14. /// init
  15. static Future init({void Function()? additionalDependencies}) async {
  16. Log.d('----ConfigServicesInjection------start-----');
  17. //全局单例的 HttpProvider 用于发起网络请求
  18. Get.put(HttpProvider(ApiConstants.baseUrl), permanent: true);
  19. //全局单例的用户数据仓库
  20. Get.put(AuthRepository(httpProvider: Get.find()));
  21. // 用户信息服务(用户信息相关业务类)
  22. Get.put(UserService(Get.find()));
  23. // 调用额外的依赖注入逻辑(如果提供了)
  24. if (additionalDependencies != null) {
  25. additionalDependencies();
  26. }
  27. }
  28. }