本文将通过代码,解读SpringBoot自动配置的原理。在学习自动配置之前,首先要先理解什么是SpringBoot的自动配置?

我们知道,SpringBoot是一种方便开发者开发应用程序的框架,可以用尽可能少的配置(即习惯优于配置)进行开发,这是在Spring4.X后出现的。通过这种习惯优于配置的方式,我们可以很轻松集成各种如注册中心,消息组件,redes等主流的框架到我们的应用当中(可以理解为可以轻松集成一个个组件框架的starter),但是很显然每一个组件框架能被轻松集成到应用中,其背后就是SpringBoot帮我们自动完成了一些约定俗成的配置并将其发布,下面就让我们研究一下SpringBoot是怎么实现自动配置的,以及都有哪些可以自动配置的框架。

(一)SpringBoot自动配置原理之启动类@SpringBootApplication

通过前面简单应用的样例,我们知道只需要通过一个添加了@SpringBootApplication注解的配置启动类,就可以完成自动配置,那么很明显自动配置的操作应该是在@SpringBootApplication这个注解当中。

让我们看看这个@SpringBootApplication注解是何方神圣?点开,可以看到这是一个组合注解,同时拥有以下注解:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

其中,最后3个注解是最重要的注解:@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan。

对于@SpringBootConfiguration实际上是一个配置类注解@SpringBootConfiguration,也就是表明这个类是一个配置类;

对于@ComponentScan我们前面应用文章也知道这是包扫描注解,会默认扫描当前配置类所在包及子包下的所有文件类:

其中带了(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) 表示在扫描过程中,会忽视所有实现了TypeExcludeFilter接口以及AutoConfigurationExcludeFilter接口的类,这两种类型本身实现了TypeFilter接口,而TypeFilter接口实现类就是指需要剔除不加载的类,因此参数就是进行剔除跳过指定类扫描的意思;

对于@EnableAutoConfiguration,这个顾名思义就是我们要重点了解的“自动配置”注解了。

那么这个@EnableAutoConfiguration又是一个实现什么功能含义的注解呢?点开这个注解查看:

可以看到,这个注解通过@Import引入了一个非常关键的类

AutoConfigurationImportSelector.class

这一行注解的意思就是,在这个@EnableAutoConfiguration注解生效之前引入生效,由于这个@EnableAutoConfiguration修饰在@SpringBootApplication,@SpringBootApplication修饰在SpringbootMyspringApplication配置启动类,因此最终就是当SpringbootMyspringApplication配置启动类加载被Spring容器管理之前,容器中就已经引入了AutoConfigurationImportSelector.class的实例,简而言之就是在SpringbootMyspringApplication配置启动类被加载之前就以前引入加载了AutoConfigurationImportSelector实例。

那么很显然,这个AutoConfigurationImportSelector实例顾名思义就是一个自动配置引入类选择器。可以看到这个AutoConfigurationImportSelector的继承关系图实际上就是一个实现了ImportSelector的类并且重写了其selectImports方法,在这个方法中,就完成自动配置的逻辑。

@Override
public String[] selectImports(AnnotationMetadata annotationMetadata) {//判断是否开启AutoConfigurationif (!isEnabled(annotationMetadata)) {return NO_IMPORTS;}AutoConfigurationMetadata autoConfigurationMetadata = AutoConfigurationMetadataLoader.loadMetadata(this.beanClassLoader);AutoConfigurationEntry autoConfigurationEntry = getAutoConfigurationEntry(autoConfigurationMetadata,annotationMetadata);return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());
}

我们一行行代码解析这个selectImports都做了什么事情?首选从这个方法可以看到传入参数是一个AnnotationMetadata对象,返回值是一个String[]数组。AnnotationMetadata对象这是一个注解元数据对象,这个对象包含了启动配置类所定义的一些元数据信息(例如是否开启自动配置,包含哪些剔除类等等)。

(1)首先是第一行代码:第一行代码只要用于判断是否开启AutoConfiguration,默认为true:


(2)接下来就是第二行代码:

AutoConfigurationMetadata autoConfigurationMetadata = AutoConfigurationMetadataLoader .loadMetadata(this.beanClassLoader);

这行代码实际上是通过类加载器,去一个名为META-INF/spring-autoconfigure-metadata.properties的配置文件中以K-V方式加载文件中定义好的全部可配置类信息,最终载入到AutoConfigurationMetadata对象中:

这个AutoConfigurationMetadata对象的数据会用于下一步读取可配置类集合后进行match比对过滤。

(3)加下来是核心代码第三行:

AutoConfigurationEntry autoConfigurationEntry = getAutoConfigurationEntry(autoConfigurationMetadata,annotationMetadata);

这行代码就是SpringBoot预先加载所有可配置的JavaConfig配置类核心代码。点开代码查看:

核心在

List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);

这个方法就是返回全部可配置的Config配置类,让我们看看这个方法内部实现细节,调用链如下:

-->AutoConfigurationImportSelector.getCandidateConfigurations-->AutoConfigurationImportSelector.getCandidateConfigurations-->SpringFactoriesLoader.loadFactoryNames-->SpringFactoriesLoader.loadSpringFactories-->Properties properties = PropertiesLoaderUtils.loadProperties(resource);

核心逻辑在SpringFactoriesLoader.loadSpringFactories方法:

Enumeration<URL> urls = (classLoader != null ?classLoader.getResources(FACTORIES_RESOURCE_LOCATION) :ClassLoader.getSystemResources(FACTORIES_RESOURCE_LOCATION));

这行代码的作用是解析工程中有哪些可以加载可配置Config类的url资源文件地址,默认会从下面地址获取:

springboot的jar包 org.springframework.boot:spring-boot-autoconfigure:2.2.5.RELEASE 中的 META-INF/spring.factories

接下来,拿到这些可能存在可配置类的地址后,就会对这些地址对应的配置文件资源进行加载解析。解析的过程实际上是将所有预先定义可配置的javaConfig配置类,以K-V键值对的方式读取出来并Map.Entry<?, ?>当中,最终转化为List返回。

这个预定义的可配置类信息表的结构是一个类似Map<K,V>数据结构,每个K会对应一个V集合,在这个配置表中我们可以看到很多熟悉的可配置框架比如SpringMVC,SpringData等框架的Config:

# AutoConfigureWebMvc auto-configuration imports
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc=\
org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration,\
org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration,\
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\
org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\
org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration,\
org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration,\
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration,\
org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration,\
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\
org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration,\
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration,\
org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration,\
org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration,\
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration

在读取这个配置文件内的信息放入Map之前,首先通过下面代码,将配置文件中所有的Key和value全部解析放在Properties 对象当中:

Properties properties = PropertiesLoaderUtils.loadProperties(resource);

根据META-INF/spring.factories定义7种不同类型的Key,如下:

org.springframework.context.ApplicationContextInitializer=\
org.springframework.context.ApplicationListener=\
org.springframework.boot.autoconfigure.AutoConfigurationImportListener=\
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.diagnostics.FailureAnalyzer=\
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider=\

解析完成并封装之后,最终进行遍历操作转化为一个Map<String, List<String>>数据结构的对象返回:

for (Map.Entry<?, ?> entry : properties.entrySet()) {String factoryTypeName = ((String) entry.getKey()).trim();for (String factoryImplementationName : StringUtils.commaDelimitedListToStringArray((String) entry.getValue())) {result.add(factoryTypeName, factoryImplementationName.trim());}
}

转化完成之后,对配置的一些可剔除类进行剔除操作,然后将剩下可进行配置的Config信息封装到AutoConfigurationEntry中:

(4)最后一行代码:

return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());

最后一行代码的作用是将前面从可配置Config类预定义的配置文件中读取到的可配置类Entry对象,转化为String[]数组返回出去,这个String[]数据的数据就是一个个Config类。

至此,整个SpringBoot自动配置原理的过程就结束了,说白了自动配置原理只是在SpringBoot启动时预先将一些帮开发者写好的可直接配置的JavaConfig配置类,通过String[] selectImports()方法解析后返回交给Spring,在后面真正使用时通过相关pom依赖引入starter等配置使这些JavaConfig生效,这仅仅只是预加载过程,还没有到真正的配置使用过程,真正的使用过程后面会以WebMVC的自动配置进行介绍(涉及到starter组件)

总结如下:

/*** springboot自动装配原理:* 1.springboot @EnableAutoConfiguration中AutoConfigurationImportSelector类执行selectImports(),* 从这里可以看到自动装配工程位于springboot的jar包org.springframework.boot:spring-boot-autoconfigure:2.2.5.RELEASE。* 根据selectImports()源码解析META/INF/spring.factories定义的所有javaConfig类,返回class对象限定名数组给spring,* 其中包括springmvc的javaConfig配置等等*/

到这里前面还留下一个问题,就是pringBoot启动时预先将一些帮开发者写好的可直接配置的JavaConfig配置类,通过String[] selectImports()方法解析后返回交给Spring,这个只是一个结论,那么AutoConfigurationImportSelector的selectImports到底是什么时候被Spring执行触发的呢?这个上面并没有做介绍,因为这个是Spring的知识,下面进行简单的调用链介绍,我目前也还没有深入了解到这一块调用的原理,仅仅只是大概读了部分核心调用链源码但是还没有搞明白完整调用过程,下面将网友的总结进行归纳,详细源码请自行百度这一块知识了解。

2. AutoConfigurationImportSelector的调度:(Spring知识)

context.annotation.ConfigurationClassParser类的parse() 方法

    -> 调用每个实现了DeferredImportSelector接口的实现类(如SpringBoot启动类)对应DeferredImportSelectorGroupingHandler的processGroupImports()方法

    |     -> 调用processImports()方法来处理所有@Import注解

    |          -> 遍历每个@Import标签,生成被注入的ImportSelector子类的实例

    |               -> 对于普通ImportSelector,调用其selectImport()方法,筛掉exclude的,再嵌套processImports(),对需要被@Import的类的@Import注解进行处理

    |               -> 对于DefferedImportSelector,只将DeferredImportSelectorHolder加入到deferredImportSelectorsHandler列表

   -> 然后继续往后执行对defferedImportImportSelectors调用相应handler的process()方法进行处理

        -> 对DefferedImportImportSelector调用processImports()

 

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

相关文章

  1. css难以理解的属性:vertical-align

    css难以理解的属性:vertical-align置顶 liao_yili 2020-06-02 16:59:02 908 收藏 8 分类专栏: CSS 文章标签: css 版权 vertical-align,是一个使用时生不生效全靠运气的属性,也是初级前端程序员难以理解的属性。接下来,将层层拨开vertical-align的神秘面纱,逐步深入…...

    2024/4/28 22:21:36
  2. TX安卓课程第一天

    插件和组件 插件 没有功能的APP 组件 基于源码编译的 都是基于模块化本地仓库 提高编译速度只要仓库有一份,就都可以使用 构建仓库 (二进制) 搭建方法本地构建仓库建造者模式 工厂模式 三个队列 五个拦截器...

    2024/4/28 4:43:12
  3. 琥珀的日志#27

    6月11日 33% 早上下午跑了两个机构。选了个离家近的,走读仨月,再封闭式仨月。...

    2024/4/28 22:59:32
  4. 【14】自定义事件

    文章目录1. 事件名2. 自定义组件的 v-model3. 将原生事件绑定到组件3.1 native 修饰符3.2 sync 修饰符 1. 事件名 不同于组件和 prop,事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称。举个例子,如果触发一个 camelCase 名字的事件…...

    2024/4/27 23:41:57
  5. 网络相关知识笔记

    网络协议和管理 网络概念: 常见的网络物理组建 RJ-45连接器、路由器、交换机、网络接口卡等… VPN(虚拟私有网络) openVPN 网络协议 网络模型 网络拓扑总线拓扑所有设备均可接收信息星型拓扑通过中心点传输 单一故障点(缺点)扩展星型拓扑结构 环形拓扑信号绕环传输 单一故障…...

    2024/4/28 6:52:49
  6. 字节--异或

    字节–异或 文章目录字节--异或一、题目描述二、分析三、代码 一、题目描述 给定整数m以及n各数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大于m的有多少个。输入描述:第一行包含两个整数n,m. 第二行给出n个整数A1,A2,...,An。数据…...

    2024/4/29 1:15:29
  7. 【15】插槽

    文章目录1. 插槽内容2. 编译作用域3. 后备内容4. 具名插槽5. 作用域插槽5.1 独占默认插槽的缩写语法5.2 解构插槽 Prop6. 动态插槽名7. 具名插槽的缩写8. 其他示例9. 废弃了的语法9.1 带有 `slot` 特性的具名插槽9.2 带有 `slot-scope` 特性的作用域插槽在 2.6.0 中,我们为具名…...

    2024/4/28 18:00:17
  8. centos6本地安装MySQL8.0.20

    没外网条件下CentOs6下安装MySql8.0.20.rpm官网下载源码包检查,卸载老的版本解压、安装mysql修改配置文件初始化跟启动登陆mysql修改密码 由于最近MySQL又被扫出漏洞,无奈只能继续往上升级,当前最新版本为8.0.20版本,由于生产环境限制,不能直接yum安装,只能源码包安装。之…...

    2024/4/27 23:45:37
  9. 【树剖】 [TJOI2015]旅游

    门 题目 一棵带点权的树上 每次询问查找x−>yx->yx−>y的路径上先经过uuu,再经过vvv,av−aua_v-a_uav​−au​的最大值 之后将x−>yx->yx−>y路径每个点权加vvv 题解 额。。。不知道是出题人还是我的语文有问题,我开始认为是一次询问可以多次买入卖出,然…...

    2024/4/28 22:22:19
  10. 原型对象、原型链

    原型对象 构造函数定义方法时会造成浪费内存的问题,我们可以把那些不变的方法直接定义在prototype对象上,这样所有对象的实例就可以共享这些方法。 在JavaScript中,每当定义一个函数数据类型(普通函数、类)时候,都会天生自带一个prototype属性,这个属性指向函数的原型对象…...

    2024/4/28 18:45:13
  11. 6700. 【2020.06.07省选模拟】得分(score )

    6700. 【2020.06.07省选模拟】得分(score ) (File IO): input:score.in output:score.outTime Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits DescriptionInputOutputSample Input样例 1 输入: 3 4 3 10 1 1 8样例 2 输入: 4 7 20 15 10 7 20 15 10Sample Ou…...

    2024/4/27 22:23:36
  12. Shell 脚本 -04-一键部署 LNMP

    Shell 脚本 100例 -04 一键部署 LAMP(RPM 包版本) 脚本需求: #! /bin/bash wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all && yum makecache yum -y install httpd && echo httpd Install succee…...

    2024/4/28 7:11:04
  13. 秋名山币王:6月12日比特币跌向9100,大概率还是震荡轮回走势,轻易不空。

    2020年6月12日主流币分析 交易致命伤害你知道几条 “家有一老如有一宝”,“不听老人言,吃亏在眼前”。所谓师者,更多的不是教你靠什么手段去发家致富,而是通过己身所经历,告诫你少进坑,多努力。真正发家致富者,也不会是师者。所以很多币友觉得币王很有钱,不,那只是相对…...

    2024/4/27 22:03:22
  14. JDK8 时间管理类 - With & TemporalAdjusters

    对于一些需要安排调度的应用程序来说,你通常需要计算例如"每月的第一个周二"这样的日期.TemporalAdjusters类提供了许多静态方法来进行常用的校正。你可以将一个校正方法的结果传递给with方法.例如,你可以通过如下代码来计算某个月的第一个周二:LocalDate firstTues…...

    2024/4/28 12:31:01
  15. 这个el表达式为什么取不到值?

    servlet代码如下: protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取前段参数String method = req.getParameter("method");if(method.equals("add")){req.getSession().setAttribu…...

    2024/4/28 6:22:21
  16. 枚举例题四:熄灯问题(POJ 1222)

    描述 有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状…...

    2024/4/29 1:18:52
  17. 说一下Threadlocal关键字?

    1.线程本地变量,可以为变量在每个线程中都创建一个副本,使每个线程都可以访问自己内部的副本变量 参考链接 添加链接描述...

    2024/4/28 22:29:13
  18. Shell 脚本 -05-实时监控本机内存和硬盘剩余空间

    Shell 脚本 100 实例-- 05 实时监控本机内存和硬盘剩余空间 脚本需求: 实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警邮件给root 管理员 #! /bin/bash # 提取根分区剩余空间 disk_size=`df / | grep / | awk {print $4}` # 提取…...

    2024/4/24 12:53:18
  19. 分布式文件系统HDFS整体剖析

    我要开始为大四找工作做准备啦,开始复习关于大数据分布式的知识。绝对干货! HDFS原理剖析1. 简说分布式文件系统2. 计算机集群结构3. 分布式文件系统的结构3.1 主节点(NameNode)3.2 从节点(DataNode)3.3 NameNode 和 DataNode 二者和客户端之间的关系图4. 客户端,NameNo…...

    2024/4/24 12:53:16
  20. 解决IDEA 2020.1.1 找不到程序包和符号

    这里写自定义目录标题解决IDEA 2020.1.1 找不到程序包和符号 解决IDEA 2020.1.1 找不到程序包和符号 IDEA 2020.1.1 maven项目build的时候报错,找不到程序包,找不到符号。 IDEA 2020.1.1 maven project: cannot find package, cannot find symbol. 如果你也是2020.1.1 遇到无…...

    2024/4/24 12:53:15

最新文章

  1. 孩子想学编程,家长可以提供哪些帮助?

    孩子想学习编程是一件非常好的事情&#xff0c;因为编程是一项非常有趣且实用的技能&#xff0c;可以帮助孩子提高逻辑思维能力、解决问题的能力以及创造力。作为家长&#xff0c;您可以提供以下几种帮助来支持孩子学习编程&#xff1a; 提供学习资源&#xff1a;您可以帮助孩子…...

    2024/4/29 1:52:06
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 触想四代ARM架构工业一体机助力手功能康复机器人应用

    一、行业发展背景 手功能康复机器人是医疗机器人的一个分支&#xff0c;设计用于帮助肢体障碍患者进行手部运动和力量训练&#xff0c;在医疗健康领域有着巨大的成长空间。 手功能康复机器人融合了传感、控制、计算、AI视觉等智能科技与医学技术&#xff0c;能够帮助患者改善康…...

    2024/4/24 17:47:22
  4. 数字时代的风向标:Facebook如何引领社交媒体的发展方向

    引言 在当今数字时代&#xff0c;社交媒体已经成为人们生活中不可或缺的一部分&#xff0c;而Facebook作为其中的领军者&#xff0c;不仅影响着亿万用户的生活&#xff0c;也在塑造着整个社交媒体行业的发展方向。本文将深入探讨Facebook在数字时代的地位、影响力以及对社交媒…...

    2024/4/25 7:50:06
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/4/28 13:52:11
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/4/28 13:51:37
  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/28 15:57:13
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

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

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

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

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

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

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

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

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

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

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

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

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 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系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

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

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

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

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

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

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

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

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

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

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

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

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