@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); }