@Override
    public Outcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {

      ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
      String[] beans = beanFactory.getBeanNamesForType(DispatcherServlet.class, false, false);
      if (beans.length == 0) {
        return Outcome.match("no DispatcherServlet found");
      }
      if (Arrays.asList(beans).contains(DEFAULT_DISPATCHER_SERVLET_BEAN_NAME)) {
        return Outcome.noMatch(
            "found DispatcherServlet named " + DEFAULT_DISPATCHER_SERVLET_BEAN_NAME);
      }
      return Outcome.match(
          "multiple DispatcherServlets found and none is named "
              + DEFAULT_DISPATCHER_SERVLET_BEAN_NAME);
    }