当前位置: 首页 > 知识库问答 >
问题:

模块和组件中作用域的区别

苏华荣
2023-03-14

Dagger2@component注释类上的@singleton注释和@在模块中提供注释方法之间有什么区别?

如果我有一个模块,其中的所有方法都用@singleton注释注释,并且有一个包含该模块的具有相同注释的组件,那么这样做的目的是什么?

@Singleton
@Component(...)
public interface AppComponent {

    // ...

}
@Provides @Singleton Context provideContext() { return context; }

共有1个答案

尉迟跃
2023-03-14

注释@provide方法(或使用@inject构造函数的类)告诉Dagger实现实际的作用域功能,而注释组件(这是必需的)没有任何功能,但告诉Dagger“我允许这个组件包含这个作用域的绑定”。请注意,在有作用域的组件中仍然可以有未作用域绑定,但不能反过来。

 类似资料:
  • Component由注释用于类级定义,Bean由注释用于构造或方法级定义。@Component用于使用类路径扫描自动检测和自动配置bean。那是什么意思?

  • 在本章中,我们将研究Drupal Blocks&Regions。 块是用于组织网站内容的容器对象。 它可以显示在您页面的区域中。 以下是创建Drupal Blocks的简单步骤。 Step 1 - 单击Drupal中的Structure ,如下面的屏幕所示。 Step 2 - 然后,单击“ Blocks 。 Step 3 - 显示Blocks页面。 单击“ Add block 。 Step 4 -

  • 如前所述,JavaScript 没有块级作用域的概念。这意味着在块语句中定义的变量,实际上是在包含函数中而非语句中创建的,来看下面的例子。 function outputNumbers(count) { for (var i = 0; i < count; i++) {alert(i); } alert(i); //计数 }运行一下 这个函数中定义了一个for 循环,而变量i 的初始值被设置为0。

  • 我一直在看视频和阅读文章,但这篇具体的文章让我很困惑,文章开头写道 Angular中的应用程序遵循模块化结构。Angular应用程序将包含许多模块,每个模块都专用于单一用途。通常,模块是一组内聚的代码,与其他模块集成以运行Angular应用程序。 模块从其代码中导出一些类、函数和值。组件是Angular的基本块,多个组件将构成您的应用程序。 一个模块可以是另一个模块的库。例如,作为主角度库模块的

  • 代码块和作用域 代码块 一个代码块就是放置在一对大括号({})内的一系列声明和语句。除了明显的在一对大括号({})的块之外,还有一些不显眼的块: 所有Go源文本的整体块,这个是最大的一个块,也被称为全域代码块。 任何一个package都是一个所有package源文件包含的包块,也被称为package代码块。比如package model。 每一个源文件都是一个代码块,也被称为源码文件代码块。比如:

  • 核心模块有CommonModule和HttpClientModule导入、CoreComponent声明和data service作为Provider。 共享模块导出用于数据表示的组件(ProductSectionComponent) CoreComponent具有“app-product-section”标记。 应用程序模块: 核心模块: 核心.组件: