docs: protected ViewDispatcher registerViewDispatcher(WebApplicationContext applicationContext) {
          // 并发下，重复注册虽然不会错误，但没有必要重复注册
          synchronized (applicationContext) {
              if (SpringUtils.getBean(applicationContext, viewDispatcherName) == null) {
                  GenericBeanDefinition beanDefinition = new AnnotatedGenericBeanDefinition(
                          ViewDispatcherImpl.class);
                  ((BeanDefinitionRegistry) applicationContext.getAutowireCapableBeanFactory())
                          .registerBeanDefinition(viewDispatcherName, beanDefinition);
                  if (logger.isDebugEnabled()) {
                      logger
                              .debug("registered bean definition:"
                                      + ViewDispatcherImpl.class.getName());
                  }
              }
              return (ViewDispatcher) SpringUtils.getBean(applicationContext, viewDispatcherName);
          }
      }