zoukankan      html  css  js  c++  java
  • 转:SpringBoot-【启动过程源码探究configureHeadlessProperty()方法】

    该方法只做了一件事:设置了一个名为java.awt.headless的系统属性,源码如下:

    private void configureHeadlessProperty() {
    System.setProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, System.getProperty(
    SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, Boolean.toString(this.headless)));
    }
    其中:
    SYSTEM_PROPERTY_JAVA_AWT_HEADLESS="java.awt.headless";
    又调用了System类的两个方法:setProperty(String key,String value)和getProperty(String a,String b)

    上述含义是:

    给属性设值System.setProperty(),它的值来源于System.getProperty(),奇怪了,为什么把属性从一个地方取出来,然后又设置到同一个地方,这不是多此一举吗?

    其实这是因为System中的两个读写属性的方法不对等.

    System中getProperty()有2个重载方法,但却只有一个setProperty()方法,其中getProperty()有单参和双参两方法,单参就是简单的获取属性,有就有,没有就没有,双参则聪明一点,在没有的时候会返回一个调用者指定的默认值,所以经过这样操作后,不管有没有那个属性,最终都能保证有.

    所以先取后设.

    那么:做了这样的操作后,SpringBoot想干什么呢?

    其实是想设置该应用程序,即使没有检测到显示器,也允许其启动.

    对于服务器来说,是不需要显示器的,所以要这样设置.

    转自:https://www.cnblogs.com/wangxuejian/p/10603034.html

  • 相关阅读:
    跳跃游戏
    不同路径
    最大子序和
    最长回文子序列
    最长公共子序列
    零钱兑换
    合并区间
    寻找数组的中心索引
    制造小程序中的一些经验
    h5写的一个签到积分系统
  • 原文地址:https://www.cnblogs.com/fangyanr/p/11791939.html
Copyright © 2011-2022 走看看