首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在flutter中使用injectable和get_it注入字符串?

在Flutter中使用injectableget_it进行字符串注入的步骤如下:

  1. 首先,在项目的pubspec.yaml文件中添加injectableget_it的依赖:
代码语言:txt
复制
dependencies:
  injectable: ^1.4.0
  get_it: ^7.2.0
  1. 在项目的根目录下创建一个新的文件夹,例如injection,用于存放依赖注入相关的代码。
  2. injection文件夹中创建一个新的文件,例如injection.dart,用于配置依赖注入。
代码语言:txt
复制
import 'package:injectable/injectable.dart';
import 'package:get_it/get_it.dart';

final getIt = GetIt.instance;

@injectableInit
void configureDependencies() => $initGetIt(getIt);
  1. lib文件夹中创建一个新的文件夹,例如services,用于存放服务类的代码。
  2. services文件夹中创建一个新的文件,例如my_service.dart,用于定义一个服务类。
代码语言:txt
复制
import 'package:injectable/injectable.dart';

@lazySingleton
class MyService {
  final String myString;

  MyService(this.myString);
  
  void doSomething() {
    print(myString);
  }
}
  1. injection文件夹中创建一个新的文件,例如injection.config.dart,用于配置依赖注入的具体实现。
代码语言:txt
复制
import 'package:injectable/injectable.dart';
import 'package:my_project/services/my_service.dart';

@InjectableInit()
void configureDependencies() {
  getIt.registerLazySingleton(() => MyService(getIt<String>()));
  // 注册其他需要注入的服务类
}
  1. lib文件夹中的main.dart文件中,引入依赖注入的配置文件,并在main函数中调用configureDependencies方法进行初始化。
代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:my_project/injection/injection.dart';

void main() {
  configureDependencies();
  runApp(MyApp());
}
  1. 现在可以在任何需要使用注入的地方使用getIt来获取相应的实例。
代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:my_project/services/my_service.dart';

final getIt = GetIt.instance;

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final myService = getIt<MyService>();
    myService.doSomething();
    
    return MaterialApp(
      // ...
    );
  }
}

通过以上步骤,你可以在Flutter中使用injectableget_it进行字符串注入。在这个例子中,我们创建了一个名为MyService的服务类,并将一个字符串作为注入的参数。然后,在main.dart文件中,我们通过getIt获取MyService的实例,并调用其中的方法。这样,我们就成功地在Flutter中使用了injectableget_it进行字符串注入。

注意:以上示例中的代码仅为演示目的,实际项目中可能需要根据具体需求进行适当的修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

对于 Flutter 快速开发框架的思考

依赖注入:很多情况下,为了便于管理使用应用的服务和数据模型,我们需要这个高级能力,但是属于偏高级点的能力了,所以是一个optional的,你可以不考虑。...依赖注入:GetIt 库名: get_it 描述: 一个简单的服务注入,用于依赖注入。 选择理由: GetIt 提供了灵活的依赖注入方式,易于使用且性能高效。...CI/CD集成 CI/CD集成通常涉及外部服务,GitHub Actions、Codemagic等,而非Flutter库。...core/di/: 使用GetIt来实现依赖注入,注册获取依赖。 core/localization/: 使用flutter_localization来实现本地化服务。...test/: 测试目录包含各层的测试代码,使用flutter_testmockito来编写测试。

38630

全新 JavaScript 装饰器实战下篇:实现依赖注入

需求通常使用 interface 来描述,当然,这并没有限制。你要一个类也可以、字符串、数字也可以,取决你的需求。...即协议的绑定,比如上面的例子我们使用 DI.IPhone 字符串来绑定协议和实现。其他编程语言可以做得更加灵活,只需要声明类型,容器会根据类型的兼容性来协调注入。...当然,一个生产级别的依赖注入实现还会涉及很多技术细节概念,比如循环依赖、对象构造析构、工厂、异步加载、对象生命周期管理、中间件、标签(Tagged)等等。...以依赖注入的场景来看, 旧版的装饰器很难做到根据注入的标识符来约束实现注入。...test('property inject', () => { // 使用 @injectable 标注支持注入的类 @injectable(BIRD_BINDING) class MyBird

52330

了不起的 IoC 与 DI

前面介绍了那么多的概念,现在我们来看一下未使用依赖注入框架使用依赖注入框架之间有什么明显的区别。...从上图可知,未使用依赖注入框架时,服务的使用者需要关心服务本身其依赖的对象是如何创建的,且需要手动维护依赖关系。若服务本身需要依赖多个对象,这样就会增加使用难度后期的维护成本。...4.2 使用依赖注入框架 使用依赖注入框架之后,系统的服务会统一注册到 IoC 容器,如果服务有依赖其他服务时,也需要对依赖进行声明。...这里阿宝哥简单介绍一下 AngularJS DI 系统存在的几个问题: 内部缓存: AngularJS 应用程序中所有的依赖项都是单例,我们不能控制是否使用新的实例; 命名空间冲突: 在系统我们使用字符串来标识服务的名称...那么如何在运行时,保证注入正确类型的依赖对象呢?这里 TypeScript 使用 reflect-metadata 这个第三方库来存储额外的类型信息。

2.7K30

flutter架构:Repository设计模式

在软件开发,我们可以使用设计模式有效的解决我们软件设计的常见问题。而在app的架构,「structural」设计模式可以帮助我们很好的划分应用结构。...本文中我们将详细讲解「Repository设计模式,「包含以下部分」:」 「Repository设计模式」是什么以及何时使用使用「具体」「抽象」类的实现以及如何权衡使用 如何使用「Repository...❝如果在Widget中直接使用来自REST API 或远程数据库的key-value,这样做是有很大风险的。换句话说:不要将业务逻辑与您的 UI 代码混合,这会使你的代码更难测试、调试推理。...我们通过「Repository设计模式能」非常快速的「抽象」出所有网络相关 JSON 序列化代码。下面,我们就来具体实现吧。...例如,我们使用get_it(https://pub.dev/packages/get_it)来进行管理: import 'package:get_it/get_it.dart'; GetIt.instance.registerLazySingleton

2.6K30

Angular依赖注入详解

1.2 依赖注入的优势 使用依赖注入的好处有: 降低组件之间的耦合度,提高可维护性。 使组件可重用更易于测试。 能将不同的实现切换进来,提高程序灵活性。 统一管理依赖模块。...二、Angular的依赖注入 Angular有自己的依赖注入框架,可以自动解析组件的依赖关系,避免了直接在组件中使用new一个服务的紧耦合方式。...2.1 @Injectable装饰器 @Injectable装饰器用于标记一个类为可注入的,可以被注入器实例化。...@Injectable的作用有: 声明可注入性 启用依赖注入 设置服务作用域 AOT编译优化 @Injectable({ providedIn: 'root' // 设置为根作用域 }) export...ngOnInit() { this.user = this.userService.getUser(); // 使用注入的服务 } } 三、高级用法 3.1 自定义注入器 @Injectable

22030

在 Nest.js 编写 SQL 的另一种方式(MyBatisMapper)

在 Nest.js 开发我们通常会选择 TypeORM 框架操作数据库,这对前端 SQL 弱的来说确实是有很大的帮助。但对于一些复杂的查询显得有点麻烦,甚至比直接写 SQL 更复杂。...下面举了几个例子对比几种写法的区别优缺点。以及如何在 Nest.js 使用 MyBatis 的语法。 需求 现在有以下表结构,学生表、学科表、分数表。来表示学生的学科考了多少分这个需求。...但可惜的是我们无法直接使用模板字符串拼接变量,为了防止注入必须使用 ? 占位符,你必须考虑参数的顺序,这也带来了一些麻烦。...一方面它提供了动态拼接 SQL 的一种标准也处理 SQL 注入,上面的需求写法如下。 <!...使用很简单对现有代码无影响,使用它生成 SQL 语句后交给数据库工具去执行。

10410

JavaScript 的依赖注入

依赖注入 DI (Dependency Injection) 是编程领域中一个非常常见的设计模式,它指的是将应用程序所需的依赖关系(服务或其他组件)通过构造函数参数或属性自动注入的过程。...Angular 使用依赖注入来管理应用的各个部分之间的依赖关系,以及如何将这些依赖关系注入到应用,例如你可以使用依赖注入注入服务、组件、指令、管道等。...比如我们现在有个日志打点的工具类,我们可以使用 Injectable 将其指定为可注入对象。...provide inject 其实也使用了依赖注入的设计模式。...并没有直接使用依赖注入的地方,不过我们依然可以借助一些第三方库来实现, 比如我们可以通过 InversifyJS 提供的 injectable decorator 标记 class 是可被注入的。

1.6K31

Angular 服务

不要使用 new 来创建此服务,而要依靠 Angular 的依赖注入机制把它注入到 HeroesComponent 的构造函数。 服务是在多个“互相不知道”的类之间共享信息的好办法。...你将创建一个 MessageService,并且把它注入到两个地方: HeroService ,它会使用该服务发送消息。 MessagesComponent ,它会显示其中的消息。...你要用一个注入器注册它。注入器就是一个对象,负责在需要时选取注入该提供商。...这节课,你将使用 RxJS 的 of() 函数来模拟从服务器返回数据。 打开 HeroService 文件,并从 RxJS 中导入 Observable  of 符号。...你在根注入把 HeroService 注册为该服务的提供商,以便在别处可以注入它。 你使用 Angular 依赖注入机制把它注入到了组件

3.3K70

细数这些年被困扰过的 TS 问题

好的,下面我们来开始介绍第一个问题 —— 如何在 window 对象上显式设置属性。...一、如何在 window 对象上显式设置属性 对于使用过 JavaScript 的开发者来说,对于 window.MyNamespace = window.MyNamespace || {}; 这行代码并不会陌生...类装饰器修饰的 HttpService 类,我们通过构造注入的方式注入了用于处理 HTTP 请求的 HttpClient 依赖对象。...关于什么是依赖注入,在 TS 如何实现依赖注入功能,出于篇幅考虑,这里阿宝哥就不继续展开了。感兴趣的小伙伴可以阅读 “了不起的 IoC 与 DI” 这篇文章。...]" obj.toString(); 八、数字枚举与字符串枚举之间有什么区别 8.1 数字枚举 在 JavaScript 布尔类型的变量含有有限范围的值,即 true false。

15K73

不会测试的程序员不是好程序员(一文让你掌握JMockit的使用)

(二)测试属性:既测试类的一个属性,它作用于测试类的所有方法,可以使用JMockit的@Mocked, @Tested, @Injectable,@Capturing进行修饰。...: 分布式系统存在一个服务调用另一个服务的接口时,可以直接通过Mock生成实例,不需要启动微服务测试。   ...除了构造函数的注入,JMockit还会通过属性查找的方式,把@Injectable对象注入到@Tested对象注入的匹配规则:先类型,再名称(构造函数参数名,类的属性名)。...若找到多个可以注入的@Injectable,则选择最优先定义的@Injectable对象。   ...(五)@Tested & @Injectable使用场景:需要手工管理被测试类的依赖时,就需要用到@Tested & @Injectable

1.4K10

Angular进阶教程2-

依赖注入使用 创建可注入服务: import { Injectable } from '@angular/core'; // @Injectable()装饰器,是告诉Angular这是一个可供注入的服务...,是可以不用使用 Injectable 类装饰器。...但当该服务需要在构造函数中注入依赖对象,就需要使用Injectable 装饰器。不过我们在开发过程中一般都会加上这个装饰器。...所以说在Angular并没有模块级别的区域,只有组件级别应用级别的区域。模块级别的注入就相当于是应用级别。...// 这种方式注册,可以对服务进行一些额外的配置(服务类也需要写@Injectable()装饰器)。 // 在未使用路由懒加载的情况下,这种注入的方式和在服务类中注入的方式是一样的。

4.1K30

快速打开 Nestjs 的世界

读取请求对象 请求对象表示一个 HTTP 请求所携带的数据信息,请求数据的查询参数、路由参数、请求头、请求体等数据。...注入使用 将 OrdersService 通过构造函数注入到 OrdersController 控制器,这样就得到了初始化后的 ordersService 成员,接着就可以在不同的处理函数调用服务中提供的能力...,将中间件消费者(cats) 的链接可以在 app 模块中进行处理,app 模块必须实现NestModule的configure()函数,并在这个函数完成关联。...,从任何模块外注册的全局管道(如上例的 useGlobalPipes())无法注入依赖,因为绑定是在任何模块的上下文之外完成的。...; 管道的使用:对客户端的数据进行转换验证; 守卫的使用:根据特定的权限角色决定是否进行处理; 拦截器的使用:对处理函数进行切面上的扩展;

39210

Angular Provider 作用域

Service 是一个普通的 TypeScript 类,它也可以没有使用 @Injectable 装饰器。...的元数据来配置服务类,: import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root', }...需要注意的是在非懒加载的特性模块,如果我们也注册了同一个服务。在根模块特性模块使用同一个服务实例,即服务是单例的。 “Talk is cheap,show me your code”。...如果在多个特性模块使用同一个 token 注册 provider,此外在根模块同样也注册了相同的 provider,只有根模块中注册的 provider 会被添加到根注入,此后所有的特性模块将会共享同一个实例...当在懒加载的模块中使用模块外的服务时,它将使用注入器创建的服务实例。但如果已经在懒加载模块中注册了 provider,在模块内获取对应的服务时,它将从模块的子注入获取对应的服务实例。

1.8K20

数栈技术分享:聊聊IOC依赖注入那些事 (Dependency inject)

Part1: What is Dependency injection 依赖注入定义为组件之间依赖关系由容器在运行期决定,形象的说即由容器动态的将某个依赖关系注入到组件之中在面向对象编程,我们经常处理的问题就是解耦...Part2: What is Dependency 依赖是程序中常见的现象,假设有 AB都被C耦合依赖着,在 OOP 编程依赖无处不在。...2、如何解决 采用依赖注入,UserService不负责被依赖类的创建和销毁,而是通过外部传入apilogger对象的方式注入。常见依赖注入方式有三种,本文主要以构造器注入为例解释。...instance of , with all injected dependencies Part4: Implement simply Dependency injection 1、预备知识 ES6 的平时业务相对使用较少的特性...Step 1: 声明接口及类型 Step 2: 声明依赖使用@injectable & @inject decorators Step 3: 创建并配置一个 Container Step 4: 解析并提取依赖

41510

AngularDart4.0 指南- 依赖注入

汽车消费者只需询问他们需要什么传递注入器。 这就是依赖注入框架的全部内容。 Angular 依赖注入 Angular 承载有自己的依赖注入框架。...英雄HTTP教程部分介绍了这样的英雄服务。 这里的重点是服务注入,所以同步服务就足够了。 注册一个服务提供商 一个服务只是Angular的一个类,直到您使用Angular依赖注入器注册它。...一个Angular注入器负责创建服务实例并将它们注入HeroListComponent。 你很少自己创建一个Angular注入器。...注入器依靠提供者创建注入注入组件,指令,管道其他服务的服务实例。 您必须使用注入器注册服务provider,否则将不知道如何创建服务。 接下来的几节将解释你可以注册一个提供者的许多方法。...概要 你在这个页面学习了Angular依赖注入的基础知识。 您可以注册各种提供程序,并且您知道如何通过向构造函数添加参数来请求注入的对象(服务)。 Angular依赖注入比本页描述的更有能力。

5.6K20
领券