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_generator
和 build_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