Spring源码之ConfigurableEnvironment Environment ConfigurablePropertyResolver PropertyResolver

2023-05-16

PropertyResolver:接口以解析任何底层资源的属性。

boolean containsProperty(String key);返回给定的属性KEY是否可用于解析,如果给定密钥的值不是NULL。

String getProperty(String key);返回与给定键关联的属性值,或者返回NULL,如果KEY不能被解析

String getProperty(String key, String defaultValue);返回与给定键关联的属性值,或者返回defaultValue,如果KEY不能被解析

<T> T getProperty(String key, Class<T> targetType);返回与给定键关联的属性值,或者返回NULL,如果KEY不能被解析

<T> T getProperty(String key, Class<T> targetType, T defaultValue);返回与给定键关联的属性值,或者返回defaultValue,如果KEY不能被解析

String getRequiredProperty(String key) throws IllegalStateException;返回与给定键关联的属性值,KEY不可为空

<T> T getRequiredProperty(String key, Class<T> targetType) throws IllegalStateException;返回与给定键关联的属性值,转换为给定的targetType

String resolvePlaceholders(String text);解决$ {…}占位符文本中,代之以相应的属性值作为解决由{@link #getProperty}。不具有默认值的不可解析占位符被忽略并通过不变的传递。

String resolveRequiredPlaceholders(String text) throws IllegalArgumentException;解决$ {…}占位符文本中,代之以相应的属性值作为解决由{@link #getProperty}。不具有默认值的不可解析占位符抛出IllegalArgumentException。

ConversionService 类型转换的服务接口。这是进入转换系统的入口点。调用{@link #convert(Object, Class)}以使用该系统执行线程安全类型转换。

ConverterRegistry 用于注册具有类型转换系统的转换器。

ConfigurableConversionService 父类为ConversionService

配置接口由大多数但不是全部ConversionService类型实现。合并由{@link ConversionService}公开的只读操作和{@link ConverterRegistry}的转变操作,以便方便地临时添加和删除{@org.springframework.core.convert.converter.Converter
 * Converters。后者是特别有用当工作于{@link org.springframework.core.env.ConfigurableEnvironment ConfigurableEnvironment}接口在应用程序上下文引导代码

ConfigurablePropertyResolver:配置接口由大多数,如果不是所有{@link PropertyResolver}类型实现。提供访问和定制将属性值从一种类型转换为另一种类型时使用的{@link org.springframework.core...ConversionService ConversionService}的工具。

ConfigurableConversionService getConversionService();返回对属性执行类型转换时使用的{@link ConfigurableConversionService}

void setConversionService(ConfigurableConversionService conversionService);设置对属性执行类型转换时使用的{@link ConfigurableConversionService}

void setPlaceholderPrefix(String placeholderPrefix);设置由这个解析器替换的占位符必须开始的前缀。

void setPlaceholderSuffix(String placeholderSuffix);设置由该解析器替换的占位符的后缀必须结束。

void setValueSeparator(String valueSeparator);指定由此解析器替换的占位符与其关联的默认值之间的分隔字符,或者{@code null}如果没有这样的特殊字符应该作为值分隔符处理。

void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders);

void setRequiredProperties(String... requiredProperties);指定哪些属性必须存在,以{@link #validateRequiredProperties()}.验证

void validateRequiredProperties() throws MissingRequiredPropertiesException;验证{@link#setRequiredProperties}指定的每个属性是否存在,并解析为非{@code null}值。

Environment  :表示当前应用程序运行的环境的接口,应用环境模型的两个关键方面:profiles和properties,有关属性访问的方法通过{@link PropertyResolver}超接口公开。配置文件是一个命名逻辑组bean定义,只有在给定的配置文件激活时才能将其注册到容器中。bean可以被分配给一个配置文件,无论是在XML中定义还是通过注释;属性在几乎所有应用程序中都扮演着重要的角色,并且可能来源于各种来源:属性文件、JVM系统属性、系统环境变量、JNDI、servlet上下文参数、ad-hoc Properties对象、Maps等等。环境对象与属性的关系的作用是为用户提供方便的服务接口,用于配置属性源并从属性源解析属性。托管在ApplicationContext中的BEAN 可以注册为EnvironmentAware或者Environment为了直接查询配置文件状态或解析属性。环境对象的配置必须通过{@code ConfigurableEnvironment} 接口,从所有AbstractApplicationContext子类方法返回。

String[] getActiveProfiles();返回显式为该环境激活的配置文件集。

String[] getDefaultProfiles();当未显式设置活动配置文件时,返回默认情况下要激活的配置文件集。

boolean acceptsProfiles(String... profiles);返回给定的配置文件中的一个或多个是否是活动的,或者在没有显式活动配置文件的情况下,是否将一个或多个给定的配置文件包含在默认配置文件中。

ConfigurableEnvironment 父类为Environment, ConfigurablePropertyResolver

配置接口由大多数,如果不是全部{@link Environment}类型实现。提供设置活动和默认配置文件以及操作底层属性源的工具。

当ApplicationContext正在使用环境时,在调用上下文的刷新方法之前执行任何此类PropertySource操作都很重要。这确保了在容器引导过程中所有属性源都可用。

void setActiveProfiles(String... profiles);

void addActiveProfile(String profile);

void setDefaultProfiles(String... profiles);

MutablePropertySources getPropertySources();

Map<String, Object> getSystemProperties();

Map<String, Object> getSystemEnvironment();

void merge(ConfigurableEnvironment parent);

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring源码之ConfigurableEnvironment Environment ConfigurablePropertyResolver PropertyResolver 的相关文章

随机推荐

  • ros环境搭建-ubuntu16.04系统安装ROS Kinetic

    安装参考 Windows下安装Ubuntu虚拟机及ROS https www jianshu com p 5b4596d40897 2 E5 AE 89 E8 A3 85ros 官网或网盘下载镜像 xff0c 本例PC端安装ubuntu g
  • Ubuntu安装 Docker CE,VNC访问docker图形界面并安装ROS

    从包安装 如果您无法使用Docker的存储库来安装Docker CE xff0c 则可以下载 deb适用于您的发行版的 文件并手动安装 每次要升级Docker CE时都需要下载新文件 转到https download docker com
  • 卸载 Ubuntu 16.04 Kinetic版本ROS

    需要先卸载ros indigo desktop full xff1a sudo apt get remove ros kinetic desktop full 上述命令只是删除ros indigo desktop full而已 xff0c
  • ROS中使用激光雷达HLS-LFCD LDS(Neato XV-11)

    本例激光雷达 HLS LFCD2 参考资料 xff1a https blog csdn net jacka654321 article details 82916688 接线 新款 CP2102模块 USB to TTL USB转串口模块U
  • 树莓派3B+安装Ubuntu Mate 16.04

    1 下载镜像 适用于3B 43 的ubuntu mate 16 04镜像 Ubuntu Mate SD zip xff0c 百度云链接 xff1a https pan baidu com s 1EX nuQReV9IJuQfvkA9XWA
  • 树莓派无人机-资料整理,请做过的大佬,多多指正

    树莓派3B和树莓派3B 43 有了 xff0c 无人机有了 xff0c PX4飞控有了 xff0c 还是一脸懵逼 xff0c 看过老外的树莓派无人机 43 4G图传视频 xff0c 用到拓展版 xff0c 一难买 xff0c 二穷 xff1
  • EasyDL定制化图像识别-图片分类

    EasyDL定制化图像识别 EasyDL是百度推出的定制模型训练平台 xff0c 不需要算法编程 xff0c 通过简单的页面操作 xff0c 和少量数据即可训练定制化的机器学习模型 图像分类 识别一张图中是否是某类物体 状态 场景 可以识别
  • 小程序微商城-商铺管理后台

    主页 xff1a 商城管理 xff1a 微信配置 xff1a 商城设置 xff1a 模板消息 xff1a 运费规则 xff1a 修改条目 xff1a 新增 按重 xff1a 新增 按件 xff1a 包邮规则 xff1a 包邮规则编辑 小程序
  • Spring源码之ConfigurableApplicationContext

    ConfigurableEnvironment xff1a 提供设置活动和默认配置文件以及操作底层属性源的工具 BeanFactoryPostProcessor xff1a 允许自定义修改应用程序上下文的bean定义 xff0c 调整上下文
  • django-web开发框架-使用Ajax

    使用Ajax 使用视图通过上下文向模板中传递数据 xff0c 需要先加载完成模板的静态页面 xff0c 再执行模型代码 xff0c 生成最张的html xff0c 返回给浏览器 xff0c 这个过程将页面与数据集成到了一起 xff0c 扩展
  • stm32在freertos系统下使用串口DMA接收方式对接freemodbus-rtu协议栈

    stm32在freertos系统下使用串口DMA接收方式对接freemodbus rtu协议栈 文章目录 stm32在freertos系统下使用串口DMA接收方式对接freemodbus rtu协议栈前言码农工程师 xff0c 人狠话不多
  • ubuntu子系统 InRelease

    InRelease Err 1 http archive ubuntu com ubuntu bionic InRelease Temporary failure resolving 39 archive ubuntu com 39 Err
  • cmakelist 寻找opencv

    我猜测可能是因为我修改opencv的默认安装路径 xff0c 导致这个问题 xff0c 于是百度CMakeList txt该如何修找opencv4的库 slam十四讲里面 xff0c CMakeList寻找opencv4库的语句 xff1a
  • git clone early EOF解决方法

    在git clone时经常会遇到 early EOF这种错误 fatal The remote end hung up unexpectedly fatal early EOF fatal index pack failed 一般出现这种错
  • opencv检测矩形

    参考 xff1a 使用OpenCV检测图像中的矩形 知来者逆的博客 CSDN博客 opencv检测图像中的矩形 1 得到原始图像之后 xff0c 代码处理的步骤是 xff1a xff08 1 xff09 滤波增强边缘 xff08 2 xff
  • 模型大小 与参数量计算

    1 model size 就是模型的大小 xff0c 我们一般使用参数量parameter来衡量 xff0c 注意 xff0c 它的单位是个 但是由于很多模型参数量太大 xff0c 所以一般取一个更方便的单位 xff1a 兆 M 来衡量 比
  • 多传感器融合track fusion

    这个讲的不错 xff1a 第六篇 无人驾驶的sensor fusion和多目标tracking 知乎 题图来自matlab公开课 sensor fusion and tracking 侵权删 但凡目前自动驾驶公司的一线工程师 xff0c 或
  • windows software develop kit 安装卸载笔记

    windows software develop kit 是visual studio 的开发工具库 安装 xff1a 打开Visual Studio Installer中 xff0c 1 Visual Studio Installer所在
  • px4flow智能光学流动传感器

    PX4Flow 是一款智能光学流动传感器 传感器拥有原生 752 480 像素分辨率 xff0c 计算光学流的过程中采用了4倍分级和剪裁算法 xff0c 计算速度达到250Hz xff08 白天 xff0c 室外 xff09 xff0c 具
  • Spring源码之ConfigurableEnvironment Environment ConfigurablePropertyResolver PropertyResolver

    PropertyResolver xff1a 接口以解析任何底层资源的属性 boolean containsProperty String key 返回给定的属性KEY是否可用于解析 xff0c 如果给定密钥的值不是NULL String