code: protected Map<String, BeanDefinition> registerModules(BindRegistry registry) {
      Stopwatch watch = new Stopwatch(true);
      List<String> modules = registry.getBeanNames(BindModule.class);
      Map<String, BeanDefinition> newBeanDefinitions = CollectUtils.newHashMap();
      for (String name : modules) {
        Class<?> beanClass = registry.getBeanType(name);
        BeanConfig config = null;
        try {
          config = ((BindModule) beanClass.newInstance()).getConfig();
        } catch (Exception e) {
          logger.error("class initialization error of  " + beanClass, e);
          continue;
        }
        List<BeanConfig.Definition> definitions = config.getDefinitions();
        for (BeanConfig.Definition definition : definitions) {
          String beanName = definition.beanName;
          if (registry.contains(beanName)) {
            logger.warn("Ingore exists bean definition {}", beanName);
          } else {
            BeanDefinition def = registerBean(definition, registry);
            newBeanDefinitions.put(beanName, def);
          }
        }
      }
      logger.info("Auto register {} beans in {}", newBeanDefinitions.size(), watch);
      return newBeanDefinitions;
    }
docs: <p>
  findRegistedModules.
  </p>
  
  @param registry a {@link org.beangle.commons.inject.bind.BindRegistry} object.
  @return a {@link java.util.Map} object.