`injectable` 开源项目安装与使用指南

injectable 开源项目安装与使用指南

injectablePython Dependency Injection for Humans™项目地址:https://gitcode.com/gh_mirrors/in/injectable

1. 项目目录结构及介绍

injectable 是一个用于 Flutter 和 Dart 应用程序的便捷代码生成器,专注于简化依赖注入(DI)过程,灵感来源于 Angular 的 Dependency Injection (DI), Guice 以及 inject.dart。以下是一般项目结构在应用了 injectable 后可能的样子:

my_app/
│
├── lib/
│   ├── main.dart                 - 主入口文件,应用程序启动点。
│   ├── injectable_config.dart    - 配置注入规则的文件。
│   └── ...                       - 其他业务逻辑相关dart文件。
│
├── test/                        - 测试文件夹,可能包括使用注入服务的测试案例。
│
├── pubspec.yaml                 - 项目配置文件,指定依赖和元数据。
│
├── build.yaml                   - 可选,当使用自定义注入配置时需要。
│
└── dev_dependencies.yaml        - 开发依赖配置,包含 `injectable_generator` 和 `build_runner`。
  • main.dart: 应用程序的起点,这里通常调用依赖初始化函数。
  • injectable_config.dart: 定义注入规则,如服务注册、单例设置等。
  • pubspec.yaml: 包含项目的元数据,版本号,描述以及依赖项列表。
  • build.yaml: 特定于 injectable_generator 的配置,用于自定义代码生成行为。

2. 项目的启动文件介绍

项目的核心启动通常发生在 main.dart 文件中。在整合了 injectable 后,你需要确保你的 main 函数或者一个专门为此创建的函数调用了依赖的初始化。例如:

import 'package:get_it/get_it.dart';
import 'package:yourapp/injectable.dart';

final getIt = GetIt.instance;

void main() async {
  await injectableInitializer(); // 这个名字取决于你在注入配置中的指定
  runApp(MyApp());
}

这里假设有一个标记有 @InjectableInit 注解的初始化函数,它负责设置 GetIt 实例,并且通过 build_runner 生成的扩展方法来初始化所有依赖。

3. 项目的配置文件介绍

pubspec.yaml

pubspec.yaml 中,你将添加 injectable 作为运行时依赖,以及 injectable_generatorbuild_runner 作为开发依赖:

dependencies:
  injectable: ^版本号

dev_dependencies:
  injectable_generator: ^版本号
  build_runner:

injectable_config.dart & build.yaml

injectable_config.dart 应该包含了注释有 @InjectableInit 的函数,用于指示生成器如何配置依赖。此外,如果你需要定制生成逻辑,可以在项目根目录下创建或修改 build.yaml 文件来控制代码生成的行为,比如指定自动注册模式或生成文件的目录。

targets:
  $default:
    builders:
      injectable_generator:injectable_builder:
        options:
          auto_register: true
          class_name_pattern: "Service$|Repository$|Bloc$"

以上是基本的结构和配置介绍。记住,为了使配置生效,你需要运行 flutter pub run build_runner build 来生成必要的代码。这一步是把你的配置转换成实际可执行的初始化逻辑的关键。

injectablePython Dependency Injection for Humans™项目地址:https://gitcode.com/gh_mirrors/in/injectable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮静滢Annette

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值