Angular复习笔记6-依赖注入

依赖注入(DependencyInjection)是Angular实现重要功能的一种设计模式。一个大型应用的开发通常会涉及很多组件和服务,这些组件和服务之间有着错综复杂的联系,如何很好地管理它们之间的依赖关系成了一个棘手的问题,而这也正是一个框架是否强大的硬指标。Angular提供的依赖注入机制,可以优雅地解决上面提到的问题。在传统的开发模式中,调用者负责管理所有对象的依赖,其中的循环依赖一直是梦魇。而在依赖注入模式中,这个管理权就交给了注入器(Injector),它在应用运行时(而不是发生在编译时)负责替换依赖对象,这称为控制反转(Inversion of Control,缩写为IoC),是依赖注入的精华所在。

依赖注入利用面向对象的法则来降低应用程序耦合程度,IOC强调的是将对代码的引用的控制权交给外部的容器进行处理,在运行时通过某种(反射)方式注入进来,实现了控制的反转,因为控制反转强调的就是上层代码和下层代码不互相依赖,他们都应该依赖接口。依赖注入是最常用的一种实现IOC的方式。

在依赖注入模式中,应用组件无须关注所依赖对象的创建或初始化过程,可以认为框架已经初始化好了,开发者只管调用即可。依赖注入有利于应用程序中各模块之间的解耦,使得代码更容易维护。这种优势可能一开始体现不出来,但随着项目复杂度的增加,当各模块、组件、第三方服务等相互调用更频繁时,依赖注入的优点就体现得淋漓尽致。开发者可以专注于所依赖对象的消费,无须关注这些依赖的生产过程,这无疑将大大提升开发效率。

关于依赖注入的原理以及设计到的模式就不再赘述,但不赘述不意味着不重要,而是太重要了,一句两句说不清楚,要先了解清楚这个概念再来看看angular中是如何实现的吧。

概况

Angular的依赖注入框架(Dependency Injection Framework)提供了注入器(Injector),它会帮助开发者创建所需要的类实例。例如要创建一个Robot类的实例,示例代码如下:

const injector = Injector.create([
{ provide: 'reboot', useClass: Reboot }
]);
const reboot = injector.get('reboot');

实际上这个Reboot内部还有很多其他的依赖,但是不要担心,Injector已经为我们创建好了一切,我们只需要直接调用get方法就能创建好我们的reboot。

为了更好地理解Angular的依赖注入,首先介绍三个重要概念。

  • 注入器(Injector):就像制造工厂,提供了一系列的接口用于创建依赖对象的实例。
  • Provider:用于配置注入器,注入器通过它来创建被依赖对象的实例。Provider把标识(Token)映射到工厂方法,被依赖的对象就是通过该方法来创建的。上面代码中的Injector.create()方法传入的就是一个provider数组。
  • 依赖(Dependence):指定了被依赖对象的类型,注入器会根据此类型创建对应的对象。

标识(token)是Angular中Provider的重要概念,将在本章后面进行讲解。

他们之间的关系如图所示,注入器是一个粘合剂,也就是中间层,调用发通过注入器来获得所需的依赖。

Provider对象字面量(如{provide:Head,useClass:Head,deps:[]})把一个标识映射到一个可配置的对象,这个标识可以是一个类名,也可以是一个字符串。有了Provider,Angular不仅知道使用了哪些依赖,也知道了这些依赖是如何被创建的,后面的内容将对Provider的注册方式做详细说明。deps显式指定了类的依赖项,使用Injector时依赖需要显式指定。在Angular中依赖Injector来创建注入器对象主要有三个地方,分别是Platform、Compiler和NgZone。以Platform为例,在如下的启动代码中:

加入需要添加平台依赖模块Reboot,可以在platformBrowserDynamic()方法中插入provider:

但是如果开发者通过在装饰器中指定依赖是不需要指定deps的:

通过装饰器创建的模块或组件,其依赖实际还是借助于Reflect类库寻找的,但是经过AoT编译后依赖数据已经生成好,所以在这种情况下应用代码也不需要引入Reflect。而自AngularCLI1.5.0后,在开发阶段也可以使用ngserve--aot在AoT模式下开发调试,这样便完全移除了Reflect依赖。

 

在组件中注入服务

如果你在组件中的元数据上定义了providers,那么angular会根据providers为这个组件创建一个注入器,这个组件的子组件也会共享这个注入器,如果没有定义,那么组件会根据组件树逐级向上查找合适的注入器来创建组件的依赖。

现在的服务的注入非常的方便,因为你在定义一个服务的时候就能在元数据中定义好这个服务是被注入到了哪里,例如下面的代码:

@Injectable({providedIn: 'root'
})
export class AccountService {}

这样你的服务就会被自动的注入到根节点上。当组件需要这个服务的时候,会逐级追溯直到找到合适的注入器来注入这个服务。

@Injectable()装饰器对于服务来说不是必须的,当一个服务依赖另一个服务的时候,前者才需要使用@Injectbale装饰器来装饰。

模块中注入服务

前面提到过,在根组件中注入的服务,在所有的子组件中都能共享这个服务,当然在模块中注入服务也可以达到这样的效果。在模块中注入服务和之前的注入场景稍有不同。Angular在启动程序时会启动一个根模块,并加载它所依赖的其他模块,此时会生成一个全局的根注入器,由该注入器创建的依赖注入对象在整个应用程序级别可见,并共享一个实例。同时,根模块会指定一个根组件并启动,由该根组件添加的依赖注入对象在组件树级别可见,在根组件及子组件中共享一个实例。更多的关于共享实例的内容可参考下一节“层级注入”,下面先来看看在模块中添加依赖注入的例子。示例代码如下:

@NgModule({
//.....其他代码.....
providers: [{ provide: HTTP_INTERCEPTORS, useClass: HttpRequsetInterceptor, multi: true },{ provide: HTTP_INTERCEPTORS, useClass: HttpResponseInterceptor, multi: true },{ provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { minLength: '20%', minWidth: '20%', hasBackdrop: true } },{ provide: MatPaginatorIntl, useValue: myPaginator() }],
//....其他代码....
})
export class AppModule{}

 需要注意的是在angular中没有模块级的作用域,只有系统级别的和组件级别的,模块级别的注入会被当做应用级别的作用来看待。这种考虑主要是针对模块的可扩展性,angular是由多个模块组成的,在@NgModule中注册的服务默认在应用级别可见。

延迟加载的模块是个例外,后面的路由章节会对延迟加载进行详细介绍,这里不再赘述。模块的延迟加载使得应用程序在启动时不被载入,而是结合路由配置,在需要时才动态加载相应的模块。Angular会对延迟加载模块初始化一个新的执行上下文,并创建一个新的注入器,在该注入器中注入的依赖只在该模块内部可见,这算是模块级作用域的一个特例。

如果在多个模块中都注入了相同标识的服务怎么办?假设在根模块中先后导入了ContactModule和MsgModule两个模块。示例代码如下: 

在ContactModule和MsgModule模块中都注入了相同Token标识的服务。因为根注入器只有一个,后面初始化的模块服务会覆盖前面初始化的模块服务,如上例MsgModule中初始化的服务会覆盖ContactModule中初始化的服务,而且即便是ContactModule模块里的组件,且这些组件引入的是同一个Token标识的服务,那么这些组件所引入的服务也依然会是MsgModule模块里注入的那个服务实例,这种情况需要特别注意。

层级注入

实际上,每个组件都有自己的注入器(但并不是每个组件都会为自己创建独立的注入器,也有可能是共享其他组件的注入器),由这个注入器创建的Provider都是单例,这是组件级别的单例。

上面提到注入可以发生在整棵组件树的任一层级,并在各层级组件的注入器中维持单例。更进一步来说,依赖注入可以传递到子孙组件中,子组件可以共享父组件中注入的实例,无须再创建。如果注入了多个实例,这些后代(子孙)组件也都可以共享这些实例,如下图所示。

Angular这种灵活的设计引出了这样一个思考:是在根组件还是在子组件中进行服务注入,该怎么选择呢?这取决于想让注入的依赖服务具有全局性还是局部性。由于每个注入器总是将它提供的服务维持单例,因此,如果不需要针对每个组件都提供独立的服务单例,就可以在根组件中注入,整个组件树共享根注入器提供的服务实例,如在上述一些组件中使用的日志工具类等;如果需要针对每个组件创建不同的服务实例,就应该在各子组件中配置providers元数据来注入服务。另一个问题是,Angular是如何查找到合适的服务实例的呢?当组件的构造函数试图注入某个服务的时候,Angular会先从当前组件的注入器查找,找不到就继续到父组件的注入器查找,直到根组件注入器,最后到应用根注入器(即模块注入器),此时找不到的话就报错,下图展示了组件往上查找服务的过程。当然,后面内容介绍的限定依赖注入是个例外,它可以控制查找的范围,即使找不到也不报错。

注入到派生组件

 组件本质上是一个类,组件可以从另一个组件派生,但派生组件不能继承父组件的注入器。二者的注入器没有任何的关联。

限定方式的依赖注入

到目前为止,注入都是假定依赖对象是存在的,然而实际情况往往并非如此,比如上层提供的Provider被移除,导致之前注入的依赖可能已经不存在了,此时再按照前面讲的依赖注入方式进行相关服务的调用,应用就会出错。幸运的是,Angular依赖注入框架提供了@Optional和@Host装饰器来解决上面提到的问题。

Angular的限定注入方式使得开发者能够修改默认的依赖查找规则,@Optional可以兼容依赖不存在的情况,提高系统的健壮性。@Host可以限定查找规则,明确实例初始化的位置,避免一些莫名的共享对象问题。

这里有一篇文章详细的描述了限定方式的依赖注入:https://blog.csdn.net/weixin_34194317/article/details/88010658

我本身对于这种限定方式的依赖注入理解的不是很清楚,而且限于篇幅,先跳过这部分的内容吧。

Provider

Provider设计模式由来已久,在前后台各种技术领域中被广泛使用,如.Net的MembershipProvider、Hibernate的ConnectionProvider,以及Android的ContentProvider等。Provider实现了逻辑操作或数据操作的封装,以接口的方式提供给调用方使用,Provider模式提供了很好的可扩展性和灵活性。在Angular中,Provider描述了注入器如何初始化标识(Token)所对应的依赖服务,它最终被用于注入到组件或者其他服务中,这个过程好比厨师(注入器)根据菜谱(Provider)制作一道名为LoggerService(标识)的菜(依赖服务)。Provider提供了一个运行时所需的依赖,注入器依靠它来创建服务对象的实例。

在上面的日志服务LoggerService例子中,LoggerService被注册到了providers数组(元数据)中。示例代码如下:

 

 上面代码的完整形式采用了对象字面量的方式来描述一个Provider的构成要素。其中provide属性可以理解为这个Provider的唯一标识,用于定位依赖值,以及注册Provider,也就是应用中使用的服务名,而useClass属性则代表使用哪个服务类来创建实例。

Angular的Provider引进标识机制解决了AngularJS1.x版本中存在的几个痛点:

  • 标识是字符串,作为唯一标识(Angular会有一个标识映射表,保证唯一性),不再依赖具体的类,可避免命名空间污染。
  • 代码只依赖一个抽象的标识,不再依赖具体的实现,可以在运行时动态替换。

事实上,标识可以是字符串,也可以是其他数据类型。当多个字符串同时映射到同一个标识的时候,会以最后一个为准,这可能会导致一些隐含的缺陷。为了解决标识命名冲突的问题,Angular引入了OpaqueToken(不透明标识),可以保证所生成的标识都是唯一的。关于详细的OpaqueToken用法,读者可以在官网上进一步了解。

Provider注册形式

Provider的主要作用是注册并返回合适的服务对象。Angular提供了如下四种常见的Provider注册形式,开发者可以结合不同的场景来选择使用。

  • 类Provider
  • 值Provider
  • 别名Provider
  • 工厂Provider

类provider

类Provider基于标识来指定依赖项,这种方式可以使得依赖项能够被动态指定为其他不同的具体实现,只要接口不变,对于使用方就是透明的。一个典型的场景就是数据渲染服务(Render),Render服务对上层应用提供的接口是固定的,但底层可以用DOM渲染方式(DomRender),也可以用Canvas渲染方式(CanvasRender),还可以用Angular Universal实现服务端渲染(ServerRender),如图所示。

然后通过useClass属性来指定使用哪种渲染方式。因为渲染服务的最终接口并没有变化(例子中还是Render),这对于调用者来说,业务代码无须修改,从而带来了极大的便利性。示例代码如下:

值Provider

在实际项目中,依赖对象不一定是类,也可以是常量、字符串、对象等其他数据类型,以方便用在全局变量、系统相关参数配置等场景中。在创建Provider对象时,只需使用useValue就可声明一个值Provider。示例代码如下:

值Provider依赖的值(通过useValue指定的值)必须在当前或者providers元数据配置之前定义。

别名Provider

有了别名Provider,就可以在一个Provider中配置多个标识,其对应的对象指向同一个实例,从而实现多个依赖、一个对象实例的作用。useExisting可以用来指定一个别名Provider。假如应用已有一个日志服务OldLoggerService,现在开发了有相同接口的新版服务NewLoggerService,考虑到重构代价等原因,并不想去替换OldLoggerService服务被使用的地方。此时为了让新旧服务同时可用,可以用useClass来解决这个问题。示例代码如下:

但是,上述两个NewLoggerService是不同的实例,这显然不是我们预期的效果。幸运的是,Angular已经考虑到这种情况,可以在创建Provider对象时使用useExisting,使得多个标识指向同一个实例。示例代码如下:

工厂Provider

有时候依赖对象是不明确且动态变化的,可能需要根据运行环境、执行权限来生成,Provider需要一种动态生成依赖对象的能力。Angular提供的工厂Provider可以解决这个问题,它通过暴露一个工厂方法,返回最终依赖的对象。在通讯录例子中,假设有这样一个场景:有些联系人的信息是保密的,只有拥有特定权限的人才能看到,所以需要对每个登录用户进行鉴权。要达到这样的目的,可以在构造函数中通过一个布尔值来判断是否有权限并返回对应的服务,在返回的服务中可以根据这个布尔值来判断是否显示联系人信息。示例代码如下:

 

 使用工厂Provider的注册方式需要用useFactory来声明Provider是一个工厂方法,如上例中指定具体的实现方法是contactServiceFactory();deps是一个数组属性,指定了所需要的依赖,可以注入到工厂方法中。上面几种Provider的注册方式可根据不同的场景选择使用,为开发大型复杂的应用提供了便利。

转载于:https://www.cnblogs.com/pangjianxin/p/10900954.html

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. angular2的依赖注入

    更好阅读体验,请看原文 在读这篇文章之前,你要先了解一下什么是依赖注入,网上关于这个的解释很多,大家可以自行Google. 我们这一篇文章还是以QuickStart项目为基础,从头开始讲解怎么在Angular2中使用依赖注入,如果你按照本篇文章中讲解的示例亲自走一遍的话,你一定能…...

    2024/4/21 4:57:01
  2. angular js中的依赖注入是什么?有什么作用?与不用依赖注入的其他框架相比,有何优点?

    这里是修真院前端小课堂,每篇分享文从 八个方面深度解析前端知识/技能,本篇分享的是: 【angular js中的依赖注入是什么?有什么作用?与不用依赖注入的其他框架相比,有何优点? 】 1.背景介绍 依…...

    2024/4/21 4:56:59
  3. AngularJs 的依赖注入

    AngularJs 的依赖注入 1-1 依赖注入介绍 依赖注入的介绍 “依赖”:当一个对象在创建的时候必须依赖另外一个对象。Exp. Var a newA(); a依赖A。 “注入”:生命依赖关系之后,angular通过injector注入器所依赖的对象进行“注入”操作。 依赖…...

    2024/5/3 23:33:14
  4. AngularJS基础 之 依赖注入的几种方法

    分类:AngularJS基础版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[] 本文参考AngularJS权威指南 概念 依赖注入是一种设计模式,它可以去除对依赖关系的硬编码,从而可以在运行时改变甚至移除依赖关系。…...

    2024/4/21 4:56:58
  5. angular源码分析:angular中的依赖注入式如何实现的

    一、准备 angular的源码一份,我这里使用的是v1.4.7。源码的获取,请参考我另一篇博文:angular源码分析:angular源代码的获取与编译环境安装 二、什么是依赖注入 据我所知,依赖注入的概念最早使用时在java编程中。依赖注…...

    2024/5/3 23:29:09
  6. AngularJS 依赖注入 深入理解

    AngularJS 依赖注入 什么是依赖注入? 是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了…...

    2024/4/21 4:56:56
  7. 原创:Javascript DI!Angular依赖注入的实现原理

    DI是Angular的特色功能,而在Angular 2.0的计划中,DI将成为一个独立的模块,参见 https://github.com/angular/di.js 这意味着它也有机会被用于nodejs等技术中,其他前端框架也完全有机会使用它。 DI简介 对于后端程序员,…...

    2024/4/21 4:56:54
  8. Angular08 依赖注入

    1 angular应用中依赖注入的工作原理 技巧01:在模块级别进行注册时所有在应用级别的组件都可以使用,因为主模块会导入其他模块,所以在模块中注入就相当于在主模块进行注入操作;懒加载的模块除外 技巧02:在模块的根组件注…...

    2024/4/21 4:56:53
  9. [译] 关于 Angular 依赖注入你需要知道的

    如果你之前没有深入了解 Angular 依赖注入系统,那你现在可能认为 Angular 程序内的根注入器包含所有合并的服务提供商,每一个组件都有它自己的注入器,延迟加载模块有它自己的注入器。 但是,仅仅知道这些可能还不够呢? …...

    2024/4/21 4:56:53
  10. angularjs 依赖注入原理与实现

    在用angular依赖注入时,感觉很好用,他的出现是 为了“削减计算机程序的耦合问题” ,我怀着敬畏与好奇的心情,轻轻的走进了angular源码,看看他到底是怎么实现的,我也想写个这么牛逼的功能。于是就模仿着写了…...

    2024/4/21 4:56:51
  11. 掌握Angular2的依赖注入

    我们这一篇文章还是以QuickStart项目为基础,从头开始讲解怎么在Angular2中使用依赖注入,如果你按照本篇文章中讲解的示例亲自走一遍的话,你一定能够掌握如何在Angular2中使用依赖注入.好,废话不多说,开始我们今天的旅行吧! 我们首先将项目中的内联模板替换为一个模板文件,使用…...

    2024/4/21 4:56:51
  12. Javascript DI!Angular依赖注入的实现原理

    JavaScript中实现DI的原理 在JavaScript中实现DI,看起来难,实际上原理很简单,它的核心技术是Function对象的toString()。我们都知道,对一个函数对象执行toString(),它的返回值是函数的源码,知道了这一点&am…...

    2024/4/21 4:56:49
  13. Angular开发必备插件一览表

    1. Angular-cli 初始化,开发,构建和维护Angular应用程序的命令行界面工具。 安装 npm install -g angular/cli 命令列表 ng help ng new my-first-project cd my-first-project ng serve 多模块创建 默认创建单模块 创建多模块 ng new my-workspa…...

    2024/4/20 19:39:44
  14. angular开发的IDE环境搭建

    试了两种,Visual Studio 2015 和 Visual Studio Code,遇到问题记录下,以备之后忘记了,有据可查1.Visual Studio 2015搭建参照下文,但最后我卡在了编译上,编译运行卡死,发现不能加载app下的.ts文…...

    2024/4/20 19:39:43
  15. 几款移动跨平台App开发框架比较

    海豚精灵:https://www.whhtjl.com;优课GO:https://mgo.whhtjl.com 整理目前流行的跨平台WebApp开发技术的特点,仅供参考。 每个框架几乎都包含以下特性: 使用 HTML5 CSS JavaScript 开发;跨平台重用代…...

    2024/4/20 19:39:42
  16. 02 ionic+angular开发webapp笔记

    Angular js 的特性: MVC 模块化和依赖注入 双向数据绑定 指令和ui控件 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、…...

    2024/4/20 19:39:41
  17. Angular8 开发(二)

    前面已经说到了基本的集成可开发准备工作,Angular 开发(一)。接下来开始逻辑部分的编写 目录大纲段子列表获取,路由跳转详情获取段子详情音乐列表搜渲染搜索的音乐列表和播放音乐总结段子列表获取,路由跳转详情 新建段…...

    2024/4/21 4:56:48
  18. angular 开发项目

    pc端 angular 5 浏览器支持 IE10 google浏览器 火狐浏览器 移动端 angular5 Ionic3 什么是混合开发? 简单来说,就是在开发移动应用中同时使用Native和Web的开发方式。 什么是Ionic3框架? Ionic3框架是一个混合开发框架,其本身…...

    2024/4/26 11:51:09
  19. JAVAWeb对ajax中get与post的使用

    JAVAWeb对ajax中get与post的使用 01.使用背景及ajax的介绍 02.ajax的一些属性 03.使用案例 03.1.基本介绍 03.2.代码详解 03.3.代码运行结果04.总结JAVAWeb对ajax中get与post的使用01.使用背景及ajax的介绍在进行javaWeb的开发中难免会遇到异步请求的情况,为了使网站局部的信息…...

    2024/4/21 4:56:47
  20. angular开发快捷操作

    创建项目 ng new my-app快速创建新组件: ng generate component views/user创建service ng g service services/my-service如果缺少依赖rxjs npm install rxjs-compat //需重启生效快速自定义管道文件(pipe) ng g p sexReform...

    2024/4/21 4:56:46

最新文章

  1. git学习指南

    文章目录 一.版本控制1.认识版本控制2.版本控制功能3.集中式版本控制4.分布式版本控制 二.Git的环境安装搭建1.Git的安装2.Git配置分类3.Git配置选项 三.Git初始化本地仓库1. git init/git clone-获取Git仓库2. 本地仓库文件的划分3. git status-检测文件的状态4. git add-文件…...

    2024/5/4 11:11:51
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. ROS2高效学习第十章 -- ros2 高级组件之大型项目中的 launch 其二

    ros2 高级组件之大型项目中的 launch 1 前言和资料2 正文2.1 启动 turtlesim,生成一个 turtle ,设置背景色2.2 使用 event handler 重写上节的样例2.3 turtle_tf_mimic_rviz_launch 样例 3 总结 1 前言和资料 早在ROS2高效学习第四章 – ros2 topic 编程…...

    2024/5/3 15:22:43
  4. linuxday05

    1、makedile原理(增量编译生成代码) # (注释符) 目标------依赖 目标不存在//目标比依赖旧才会执行命令; makefile的实现 1、命名要求(Makefile/makefile) 2、规则的集合 目标文件&#…...

    2024/5/4 6:30:26
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57