code: protected ServletWebServerFactory getWebServerFactory() {
  		// Use bean names so that we don't consider the hierarchy
  		String[] beanNames = getBeanFactory()
  				.getBeanNamesForType(ServletWebServerFactory.class);
  		if (beanNames.length == 0) {
  			throw new ApplicationContextException(
  					"Unable to start ServletWebServerApplicationContext due to missing "
  							+ "ServletWebServerFactory bean.");
  		}
  		if (beanNames.length > 1) {
  			throw new ApplicationContextException(
  					"Unable to start ServletWebServerApplicationContext due to multiple "
  							+ "ServletWebServerFactory beans : "
  							+ StringUtils.arrayToCommaDelimitedString(beanNames));
  		}
  		return getBeanFactory().getBean(beanNames[0], ServletWebServerFactory.class);
  	}
docs: Returns the {@link ServletWebServerFactory} that should be used to create the
  embedded {@link WebServer}. By default this method searches for a suitable bean in
  the context itself.
  @return a {@link ServletWebServerFactory} (never {@code null})