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

spring复习:(51)environment、systemProperties、systemEnvironment三个bean是在哪里被添加到容器的?

一、主类:

package cn.edu.tju.study.service.anno;import cn.edu.tju.study.service.anno.config.MyConfig;
import cn.edu.tju.study.service.anno.domain.Person;
import com.sun.javafx.runtime.SystemProperties;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.Environment;import java.util.Map;public class AnnoTest {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();context.register(MyConfig.class);context.refresh();System.out.println("after refresh......");Environment environment = context.getBean("environment", Environment.class);System.out.println(environment);System.out.println("#########################################################");Map<String, Object> systemProperties = context.getBean("systemProperties", Map.class);System.out.println(systemProperties);System.out.println("#########################################################");Map<String, Object> systemEnv = context.getBean("systemEnvironment", Map.class);System.out.println(systemEnv);}
}二、在哪里添加了上述3个bean?
context.refresh()这个方法,其代码片段如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/1f61d3f8f96949aea50bec5e69ef72f2.png)
其中的prepareBeanFactory方法包含代码片段如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/75819d6c8faf4f4ba7a959b4539b2e28.png)
其中ENVIRONMENT_BEAN_NAME为environment,SYSTEM_PROPERTIES_BEAN_NAME为systemProperties,SYSTEM_ENVIRONMENT_BEAN_NAME为systemEnvironment,
可见代码片段中注册了上述3个名字的bean,其对象分别通过getEnvironment方法、getEnvironment.getSystemProperties方法、getEnvironment.getSystemEnvironment方法获取。registerSingleton方法的代码如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/db116c7ae4184557a8e7130dc9fef535.png)
其中super.registerSingleton的代码如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/06d6750ab44243b8917209bc1a83000f.png)
其中addSingleton的代码如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/71e1c389d1a04726abe32acde3639213.png)
http://www.lryc.cn/news/96504.html

相关文章:

  • element ui 上传控件携带参数到后端
  • scrapy分布式+指纹去重原理
  • FileHub使用教程:Github Token获取步骤,使用快人一步
  • 嵌入式开发:单片机嵌入式Linux学习路径
  • Libvirt的virsh工具常用命令
  • 高斯消元解异或方程组写法
  • 前端 mock 数据的几种方式
  • 【GO】go语言入门实战 —— 猜数字游戏
  • opencv-25 图像几何变换04- 透视 cv2.warpPerspective()
  • 视频讲解Codeforces Round 887 (Div. 2)(A--C)
  • 【团队协作开发】将Gitee项目导入到本地IDEA中出现根目录不完整的问题解决(已解决)
  • vue-pdf 单列显示多个pdf页面
  • 2023年FPGA好就业吗?
  • 【业务功能篇52】Springboot+mybatis mysql开启批量执行sql参数 allowMultiQueries=true
  • StableDiffusion 换脸实现
  • 直播平台源码开发提高直播质量的关键:视频编码和解码技术
  • 如何使用 PHP 更新数据到数据库?
  • NLP masked_tokens[]、token_masks[]是什么?
  • aoa_android工程编译注意事项
  • java篇 类的进阶0x06:可见性修饰符(访问修饰符)
  • Java 贪心算法经典问题解决
  • 所有docker命令无效,解决办法
  • 系列一、创建者模式
  • 数据库系列:覆盖索引和规避回表
  • java Spring Boot上线运维 启动jar时控制台调整零时变量
  • java后端校验
  • PowerPoint如何修改“默认保存路径”?
  • 【PMP】有没有项目经理能看得懂这九张图?求挑战
  • ES6学习记录—自己记录一直更新版
  • linux操作gpio的一些记录