内容简介:在springboot的启动代码中看到了下面这一句:先不谈这段代码的作用,只说这里的写法就有很多可以借鉴的地方:从spring的代码中就可以看到设计者对我们这些普通Developer的友好。
引入
在springboot的启动代码中看到了下面这一句:
private void configureHeadlessProperty() {
System.setProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS,
System.getProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, Boolean.toString(this.headless)));
}
先不谈这段代码的作用,只说这里的写法就有很多可以借鉴的地方:
- 定义了有意义的常量
- 在set之前先get以避免覆盖用户自定义配置
- 允许用户在程序中配置headless项,所以有了 this . headless 变量
- Boolean . toString 这样的写法也是极好的,起到了规范统一的作用
从spring的代码中就可以看到设计者对我们这些普通Developer的友好。
忽略掉这些有价值(但有可能显得啰嗦)的内容,可以提炼出这行代码:
System.setProperty("java.awt.headless", "true");
这行代码的作用是:声明当前应用使用 headless 模式。
说明
Headless模式是应用的一种配置模式。在服务器可能缺少显示设备、键盘、鼠标等外设的情况下可以使用这种模式。
在 java.awt.toolkit 和 java.awt.graphicsenvironment 类中的很多方法,除了对字体、图形和打印的操作外还需要调用显示器、键盘和鼠标等设备。但是有一些类,比如 Canvas 和 Panel ,是可以在headless模式下执行的。
在headless模式下,(awt)应用程序可以执行如下操作:
- 创建轻量级组件
- 收集关于可用的字体、字体指标和字体设置的信息
- 设置颜色来渲染准备图片
- 创造和获取图像,为渲染准备图片
- 使用java.awt.PrintJob,java.awt.print.*,和javax.print.*类里的打印操作
简单来说,headless模式是一种声明:现在不要指望硬件的支持了,只能使用系统的运算能力来做些非可视化的处理工作。
除此之外,应该是没有其他作用了。
重点
关于这个配置在性能上的影响:
- 如果应用不需要任何 head ,那么有无这个配置没有任何影响;
- 如果应用有弹出窗口之类的操作,那么在 headless 模式下这种操作会被阻止。
总之,这是一项提示类的配置。
参考
End!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机科学概论(第11版)
J. Glenn Brookshear / 刘艺、肖成海、马小会、毛倩倩 / 人民邮电出版社 / 2011-10-1 / 69.00元
本书多年来一直深受世界各国高校师生的欢迎,是美国哈佛大学、麻省理工学院、普林斯顿大学、加州大学伯克利分校等许多著名大学的首选教材,对我国的高校教学也产生了广泛影响。 本 书以历史眼光,从发展的角度、当前的水平以及现阶段的研究方向等几个方面,全景式描绘了计算机科学各个子学科的主要领域。在内容编排上,本书很好地兼顾了 学科广度和主题深度,把握了最新的技术趋势。本书用算法、数据抽象等核心思想贯穿各......一起来看看 《计算机科学概论(第11版)》 这本书的介绍吧!