Spring之底层架构核心概念-Environment

news2024/11/23 18:50:47

文章目录

  • 1.Environment作用
  • 2.用法
    • 2.1 systemEnvironment 和 systemProperties
    • 2.2 MutablePropertySources
  • 3.实际用法
  • 4.总结

1.Environment作用

Environment:获取环境变量

2.用法

2.1 systemEnvironment 和 systemProperties

public static void main(String[] args) {

    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

    //操作系统层面的环境变量
    Map<String, Object> systemEnvironment = context.getEnvironment().getSystemEnvironment();
    System.out.println(systemEnvironment);
    System.out.println("==========Environment==========");

    //java运行层面,通过-D指定的
    Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties();
    System.out.println(systemProperties );
    System.out.println("=========Properties===========");

}

getSystemProperties获取的是java运行层面,通过-D指定的变量:
我们运行打印之后,如图,把第一行的数据复制出来放到其他文件里
在这里插入图片描述

搜索 Dfile , 可以看到定义的UTF-8 编码格式
在这里插入图片描述

再看

 Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties(); 

打印出的数据,如图红箭头处可以找到指定的 UTF-8
在这里插入图片描述

2.2 MutablePropertySources

MutablePropertySources sources = context.getEnvironment().getPropertySources();
System.out.println(sources);
System.out.println("=========MutablePropertySources===========");

打印结果:

[PropertiesPropertySource {name='systemProperties'}, SystemEnvironmentPropertySource {name='systemEnvironment'}, ResourcePropertySource {name='class path resource [spring.properties]'}]

MutablePropertySources 包括了systemProperties 和systemEnvironment 和配置文件,是最强大的,但一般并不会这样用。

3.实际用法

//操作系统层面
System.out.println(context.getEnvironment().getProperty("JAVA_HOME"));
//指定环境变量
System.out.println(context.getEnvironment().getProperty("sun.jnu.encoding"));
//配置文件
System.out.println(context.getEnvironment().getProperty("zjy"));

(spring.properties文件配置如下)
在这里插入图片描述

打印结果:

在这里插入图片描述

4.总结

好记性不如烂笔头,知道不如做到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【UE4 第一人称射击游戏】13-瞄准开火

上一篇&#xff1a; 【UE4 第一人称射击游戏】12-全自动步枪并显示剩余弹药量 本篇效果&#xff1a; 步骤&#xff1a; 1.打开“ThirdPersonCharacter”&#xff0c;添加一个骨架网格体组件 将其作为Mesh&#xff08;继承&#xff09;的子级 父项套接字选为“Weapon_Attach”…

2022需求最大的 8 种编程语言:Python第二,ta居榜首

一直以来&#xff0c;编程语言都是程序员非常关注的话题。虽然有超过200编程语言&#xff0c;但其中只有少数用于现实世界的行业。 2022年也快接近尾声&#xff0c;今年最受欢迎使用最多的语言有哪些呢&#xff1f; 从2021年10月到2022年11月&#xff0c;DevJobsScanner分析了…

国内葡萄酒行业数据浅析

大家好&#xff0c;这里是小安说网控。 葡萄酒是最为常见的果酒&#xff0c;在国内酒品市场上占据着一席之地。近年来&#xff0c;受整体经济环境影响&#xff0c;葡萄酒行业的各项数据都不甚理想。 今年&#xff0c;1-10月份&#xff0c;国内葡萄酒产值&#xff0c;无论是当期…

[ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

skywalking 快速入门

一、skywalking简介 1、skywalking介绍 Skywalking是一个国产的开源框架&#xff0c;2015年有吴晟个人开源&#xff0c;2017年加入Apache孵化器&#xff0c;国人开源的产品&#xff0c;主要开发人员来自于华为&#xff0c;2019年4月17日Apache董事会批准SkyWalking成为顶级项…

村政府小型网站

小型网站架构 编程工具&#xff0c;编程语言&#xff0c;编程细节 编程工具 idea最好的java项目编程工具&#xff0c;集合springboot框架。 编程语言 java,jsp,数据库表编程 编程细节 配置springboot&#xff0c;pom.xml相关配置文件&#xff0c;熟练使用idea以及相关目…

再学C语言15:其他运算符

C大约有40个运算符 一、sizeof运算符和size_t运算符 sizeof运算符&#xff1a;以字节为单位返回其操作数大小&#xff1b;操作数可以是一个具体的数据对象&#xff08;如一个变量名&#xff09;或者一个类型&#xff08;如float&#xff09;&#xff1b;如果数据对象是一个类…

unity前端通过java后端实现将图片上传到阿里云OSS并在前端显示

一、开通对象存储OSS服务 阿里云-搜索推荐 &#xff08;1&#xff09;申请阿里云账号 &#xff08;2&#xff09;实名认证 &#xff08;3&#xff09;开通对象存储oss服务 &#xff08;4&#xff09;进入管理控制台 &#xff08;5&#xff09;创建bucket &#xff08;6&a…

基于注解的自动装配之@Autowired的原理及注意事项

基于注解的自动装配之Autowired的原理及注意事项 1. Autowired的原理 首先根据所需要的组件类型到IOC容器中查找 能够找到唯一的bean&#xff1a;直接执行装配 如果完全找不到匹配这个类型的bean&#xff1a;装配失败 和所需类型匹配的bean不止一个 没有Qualifier注解&#…

YGG 与 Mike Ovecka 对 Web3 电子竞技的愿景

&#xff08;从左到右&#xff09;YGG 内容创作者 Een Mercado、Ampverse Web3 负责人 Sascha Jochum、Axie Infinity 菲律宾负责人 Nix Eniego、MetaSports 联合创始人兼 CEO Joe Josue 和 YGG 电子竞技负责人 Mike Ovecka 在 Philippine Web3 Festival 的“区块链游戏电子竞…

MybatisPlus代码生成器配置(处理blob等类型)

一&#xff1a;新建springboot项目 二&#xff1a;导包 <dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.2</version></dependency><depe…

ATJ2158界面绘制LVGL---定时器

LVGL定时器 在lv_timer.c中有相关的操作函数 Create a timer&#xff08;创建定时器&#xff09; LVGL 有一个内置的定时器系统。可以注册一个函数以定期调用它。定时器在lv_timer_handler()中被处理和调用&#xff0c;它需要每隔几毫秒调用一次 Ready and Reset&#xff0…

fio磁盘压测工具

文章目录背景安装测试如何模拟现实中的IOfio参数解释【1】随机读测试【2】随机写测试【3】 顺序读测试【4】 顺序写测试numjobs5 测试随机读随机写顺序读顺序写blktracefio 模拟真实IO场景查看 blktrace 记录的结果将结果转化为二进制文件使用 fio 重放日志结论背景 因为是虚拟…

Oracle 备份与恢复常见的七大问题

为了最大限度保障数据的安全性&#xff0c;同时能在不可预计灾难的情况下保证数据的快速恢复&#xff0c;需要根据数据的类型和重要程度制定相应的备份和恢复方案。在这个过程中&#xff0c;DBA的职责就是要保证数据库&#xff08;其它数据由其它岗位负责&#xff09;的高可用和…

Linux常用操作(下)

目录 文件传输 全局查找 管道符 统计数目 vim快捷键 软件安装 用户和组 文件权限 文件传输 yum install lrzsz -y rpm -qa |grep lrzsz 完成后直接将文件拖入xshell即可 全局查找 grep 字符串 文件名 grep colea * grep -r colea *//递归全局查找 管道符 ps -ef…

边缘AI概述

随着移动计算和物联网&#xff08;IoT&#xff09;应用程序的爆炸性增长&#xff0c;数十亿移动和物联网设备正在连接到互联网&#xff0c;在网络边缘生成大量数据。因此&#xff0c;在云数据中心收集大量数据会产生极高的延迟和网络带宽使用。 因此&#xff0c;迫切需要将人工…

K8S——调用亲和性

k8s-调度亲和性 简介 Scheduler 是 kubernetes 的调度器&#xff0c;主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单&#xff0c;但有 很多要考虑的问题&#xff1a; 公平&#xff1a;如何保证每个节点都能被分配资源资源高效利用&#xff1a;集群所有资源最…

为什么NoSQL数据库这么受欢迎?

大数据时代&#xff0c;NoSQL数据库是企业构建数据能力的核心工具之一。近期&#xff0c;在2022腾讯全球数字生态大会NoSQL数据库专场上&#xff0c;腾讯云发布了多项NoSQL产品能力升级&#xff0c;并重点讲解了其背后的自研技术要点及实现细节&#xff0c;分享了腾讯云NoSQL为…

利用Python自动生成请假条,实现高效摸鱼

哈喽兄弟们&#xff0c;今天咱们来实现用Python来批量生成请假条&#xff0c;这回既学了东西又做了事情&#xff0c;两不误~ 本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word 主要将涉及以下三个知识点 openpyxl 读取 Excel 文件python-docx 写入 Word …

org.springframework.jdbc.BadSqlGrammarException: Error updating database

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; org.springframework.jdbc.BadSqlGrammarException: Error updating database 报错信息&#xff1a; org.springframework.jdbc.BadSqlGrammarException: Error updat…