功能位置
// **************** org.springframework.boot.SpringApplication ******************/
private boolean webEnvironment;
private void initialize(Object[] sources) {//略...this.webEnvironment = deduceWebEnvironment();//略...
}

推断当前环境是否是web环境,并把推断结果(boolean)保存到SpringApplication 实例中。

如何推断的呢?其实就是加载 web环境下才有的类,加载成功说明是web环境,否则不是web环境。

下面是源码:

源码:
initialize(...)
 |- deduceWebEnvironment()

// **************** org.springframework.boot.SpringApplication ******************/private static final String[] WEB_ENVIRONMENT_CLASSES = { "javax.servlet.Servlet","org.springframework.web.context.ConfigurableWebApplicationContext" };
/*** 检查classpath中是否同时存在{ "javax.servlet.Servlet","ConfigurableWebApplicationContext" },* 如果存在的话,返回true.否则返回false.*/
private boolean deduceWebEnvironment() {for (String className : WEB_ENVIRONMENT_CLASSES) {// classpath 下面没有指定的两个类,则表示不是web环境if (!ClassUtils.isPresent(className, null)) {return false;}}return true;
}// **************** org.springframework.util.ClassUtils ******************/
public static boolean isPresent(String className, ClassLoader classLoader) {try {// 当前类加载器加载 className 指定的类,报异常则表示classpath下没有该类forName(className, classLoader);return true;}catch (Throwable ex) {// Class or one of its dependencies is not present...return false;}
}

1.1-Q1 设置这个webEnvironment 做什么用?

搜索(ctrl+shift+g)所有读取 webEnvironment 的地方,打上断点,debug 程序看看…

1.1、推断和设置“是否为 Web 环境”相关推荐

  1. html5 ios cookie,iOS设置cookie到web遇到的坑

    获取本地的cookie,[SystemConfigure shareSystemConfigure].get_kHttpURL]留意用自己本地的域名,获取本地的登录的cookie信息 - (NSStr ...

  2. 服务器win2003虚拟内存设置,winxp、win2003最正确的设置虚拟内存方法WEB服务器 -电脑资料...

    我不是说如何支持4G以上内存的废话,地球人都知道装上2003SP2企业版即可支持了, 我一开始也是百思不得其解,以为2003系统就是这样的,也尝试用supercach.ramdisk这些软件解决,但这 ...

  3. Java web 环境搭建-Linux

    文章目录 一.初识 Tomcat 二.Java web 环境:Nginx+JDK+Tomcat+MySQL 三.环境部署流程 3.1 安装 JDK(java 解析器) 3.1.1 首先安装 gcc 3 ...

  4. 阿里云linux centos 一键部署web环境--图文详解

    阿里云linux centos 一键部署web环境--图文详解 标签: linux阿里云一键部署 2017-04-15 12:28 386人阅读 评论(0) 收藏 举报  分类: linux(11)  ...

  5. centos6.5搭建php网站,Centos6.5下搭建web环境(Apache+mysql+php+phpMyAdmin)

    转岗以后因为不太熟练一直没有怎么管理服务器,为了后续工作能够顺利展开,决定将之前的服务器重新搭建,并把某些需求整合避免以后管理起来会凌乱. 首先先把web环境给搭建起来,以下是搭建过程以作后续查证使用 ...

  6. spring 开发环境_设置Spring 3开发环境

    spring 开发环境 本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程 ...

  7. 设置Spring 3开发环境

    本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程中,我们将需要安装以下组 ...

  8. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  9. myeclipse9 maven web 环境

    2019独角兽企业重金招聘Python工程师标准>>> 1. 使用Maven创建webapp工程----原因是使用Maven时一般需要遵循一定的目录结构,虽然也可以使用不同的目录结构 ...

最新文章

  1. LeetCode刷题-4
  2. 【廖雪峰python入门笔记】raw 字符串和多行字符串表示
  3. 送给同事的5个新年计划
  4. 中软国际入职java考核_中软国际技术人员入职试题2(Java)
  5. Android自定义控件系列
  6. 20181120-1 每周例行报告
  7. 设计模式:讲在设计模式之前
  8. Quickly Find/ Open a file in Visual Studio
  9. php 汉字unico编码范围,汉字 Unicode 编码范围
  10. 高等数学(同济第七版上)课后习题及解答
  11. Jmeter生成HTML性能测试报告
  12. 前端作品-网页弹钢琴
  13. 磊科路由器dns服务器老要修复,路由器dns异常解决方法
  14. 为什么选择电阻式温度传感器呢
  15. ink css,ink - 在线工具 - 前端之家
  16. 论今日头条背后的产品逻辑分析
  17. sqlalchemy 踩过的坑
  18. WannaCry勒索病毒分析过程**中**
  19. python word保存图_Python 将本地图片存储到 Word 文档
  20. ARIMA疫情期间港口靠挂数的时间序列分析

热门文章

  1. Java Applet 授权命令
  2. php的require 失败,PHP在require_once上失败
  3. mysql中如何迁移数据文件,迁移mysql数据文件存放位置
  4. dev-mysql_GitHub - intergrate-dev/mysql-elasticsearch
  5. hibernate id生成策略 mysql_Hibernate中ID生成策略
  6. 请键入 net helpmsg 3534 以获得更多的帮助。_身边有人得了抑郁症,可以做点什么帮助Ta?| 心理小课...
  7. long 和 Object的相互转换
  8. Linux下安装golang
  9. Android开发笔记(一百零九)利用网盘实现云存储
  10. python 生成器读取文件