当前位置: 首页 > news >正文

Environment与ConfigurableEnvironment

Environment

Spring Environment接口是Spring框架中用于获取应用程序配置信息的核心接口,常用的方法包括:

  1. getProperty(String key):获取指定属性的值,如果属性不存在则返回null。

示例代码:

@Autowired
private Environment env;String value = env.getProperty("spring.application.name");
  1. getRequiredProperty(String key):获取指定属性的值,如果属性不存在则抛出IllegalStateException异常。

示例代码:

@Autowired
private Environment env;String value = env.getRequiredProperty("my.required.property");
  1. containsProperty(String key):判断指定属性是否存在。

示例代码:

@Autowired
private Environment env;boolean exists = env.containsProperty("my.property");
  1. getPropertySources():获取所有的属性源。

示例代码:

@Autowired
private Environment env;MutablePropertySources sources = ((AbstractEnvironment) env).getPropertySources();
  1. getPropertySources(String name):根据名称获取指定的属性源。

示例代码:

@Autowired
private Environment env;PropertySource<?> source = env.getPropertySources().get("my.property.source");
  1. getActiveProfiles():获取当前激活的profile。

示例代码:

@Autowired
private Environment env;String[] profiles = env.getActiveProfiles();
  1. getDefaultProfiles():获取默认的profile。

示例代码:

@Autowired
private Environment env;String[] profiles = env.getDefaultProfiles();

ConfigurableEnvironment

ConfigurableEnvironment是Spring框架中的一个接口,它是Environment接口的子接口,用于表示应用程序的环境配置信息。ConfigurableEnvironment提供了一些方法,可以用来获取和设置应用程序的环境配置信息,包括系统属性、环境变量、配置文件等。


ConfigurableEnvironment接口中的一些常用方法包括:

1. getPropertySources():获取应用程序的所有属性源,包括系统属性、环境变量、配置文件等。2. setPropertySources(PropertySources propertySources):设置应用程序的属性源。3. setProperty(String key, String value):设置指定属性的值。4. getProperty(String key):获取指定属性的值。5. getRequiredProperty(String key):获取指定属性的值,如果属性不存在则抛出异常。6. containsProperty(String key):判断指定属性是否存在。7. getActiveProfiles():获取当前激活的环境配置文件。8. addActiveProfile(String profile):添加一个激活的环境配置文件。9. getDefaultProfiles():获取默认的环境配置文件。10. setDefaultProfiles(String... profiles):设置默认的环境配置文件。

示例代码

  1. getPropertySources()方法

该方法返回一个PropertySources对象,该对象包含了应用程序的所有配置信息。可以通过该方法获取应用程序的所有配置信息。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
PropertySources propertySources = environment.getPropertySources();
  1. setPropertySources(PropertySources propertySources)方法

该方法用于设置应用程序的配置信息。可以通过该方法将自定义的配置信息添加到应用程序中。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
MutablePropertySources propertySources = new MutablePropertySources();
propertySources.addLast(new MapPropertySource("customProperties", Collections.singletonMap("custom.property", "customValue")));
environment.setPropertySources(propertySources);
  1. setProperty(String key, String value)方法

该方法用于设置应用程序的某个配置属性的值。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
environment.setProperty("my.property", "myValue");
  1. getProperty(String key)方法

该方法用于获取应用程序的某个配置属性的值。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
String value = environment.getProperty("my.property");
  1. getRequiredProperty(String key)方法

该方法用于获取应用程序的某个配置属性的值,如果该属性不存在,则抛出异常。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
String value = environment.getRequiredProperty("my.property");
  1. containsProperty(String key)方法

该方法用于判断应用程序是否包含某个配置属性。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
boolean contains = environment.containsProperty("my.property");
  1. getActiveProfiles()方法

该方法返回当前激活的所有配置文件的名称。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
String[] activeProfiles = environment.getActiveProfiles();
  1. addActiveProfile(String profile)方法

该方法用于添加一个激活的配置文件。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
environment.addActiveProfile("dev");
  1. getDefaultProfiles()方法

该方法返回默认的配置文件的名称。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
String[] defaultProfiles = environment.getDefaultProfiles();
  1. setDefaultProfiles(String… profiles)方法

该方法用于设置默认的配置文件的名称。

示例代码:

ConfigurableEnvironment environment = new StandardEnvironment();
environment.setDefaultProfiles("dev", "test");

相关文章:

  • 第四章 文件管理 十、文件系统的全局结构
  • 10.26 知识总结(python操作MySQL、SQL注入问题、事务、触发器等)
  • CMake aux_source_directory 学习
  • CentOS 使用线程库Pthread 库
  • 【算法】滑动窗口题单——3.不定长滑动窗口(求最短/最小)⭐ 删除最短的子数组使剩余数组有序
  • unity button移动位置some values driven by canvas
  • Qt篇——子控件QLayoutItem与实际控件的强转
  • 网络通信 | 内网穿透
  • 2023年Flutter教程_Flutter+Getx仿小米商城项目实战视频教程-V3版
  • Flutter extended_image库设置内存缓存区大小与缓存图片数
  • 深入理解NLP
  • 基于单片机的空气质量检测系统
  • 接口测试 —— Requests库GET请求!
  • order by数据过多引起的cpu飙升
  • Web:探索 SpreadJS强大的在线电子表格库
  • C++入门教程(10):for 语句
  • ES6 ...操作符
  • github指令
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • quasar-framework cnodejs社区
  • React-Native - 收藏集 - 掘金
  • Web设计流程优化:网页效果图设计新思路
  • 闭包,sync使用细节
  • 多线程 start 和 run 方法到底有什么区别?
  • 给Prometheus造假数据的方法
  • 蓝海存储开关机注意事项总结
  • 前端自动化解决方案
  • 我感觉这是史上最牛的防sql注入方法类
  • 我这样减少了26.5M Java内存!
  • 想写好前端,先练好内功
  • 项目实战-Api的解决方案
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • kubernetes资源对象--ingress
  • 阿里云重庆大学大数据训练营落地分享
  • 湖北分布式智能数据采集方法有哪些?
  • 如何用纯 CSS 创作一个货车 loader
  • ​ubuntu下安装kvm虚拟机
  • #《AI中文版》V3 第 1 章 概述
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (搬运以学习)flask 上下文的实现
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot教学评价 毕业设计 641310
  • (数据结构)顺序表的定义
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)基于IDEA的JAVA基础12
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转载)Linux 多线程条件变量同步
  • .NET Core 项目指定SDK版本
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON