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)







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值