org.springframework.context.ConfigurableApplicationContext.getClassLoader()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(6.1k)|赞(0)|评价(0)|浏览(115)

本文整理了Java中org.springframework.context.ConfigurableApplicationContext.getClassLoader()方法的一些代码示例,展示了ConfigurableApplicationContext.getClassLoader()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ConfigurableApplicationContext.getClassLoader()方法的具体详情如下:
包路径:org.springframework.context.ConfigurableApplicationContext
类名称:ConfigurableApplicationContext
方法名:getClassLoader

ConfigurableApplicationContext.getClassLoader介绍

暂无

代码示例

代码示例来源:origin: spring-projects/spring-framework

@SuppressWarnings("unchecked")
private ApplicationContextInitializer<ConfigurableApplicationContext> loadInitializer(
    String className, ConfigurableApplicationContext wac) {
  try {
    Class<?> initializerClass = ClassUtils.forName(className, wac.getClassLoader());
    Class<?> initializerContextClass =
        GenericTypeResolver.resolveTypeArgument(initializerClass, ApplicationContextInitializer.class);
    if (initializerContextClass != null && !initializerContextClass.isInstance(wac)) {
      throw new ApplicationContextException(String.format(
          "Could not apply context initializer [%s] since its generic parameter [%s] " +
          "is not assignable from the type of application context used by this " +
          "framework servlet: [%s]", initializerClass.getName(), initializerContextClass.getName(),
          wac.getClass().getName()));
    }
    return BeanUtils.instantiateClass(initializerClass, ApplicationContextInitializer.class);
  }
  catch (ClassNotFoundException ex) {
    throw new ApplicationContextException(String.format("Could not load class [%s] specified " +
        "via 'contextInitializerClasses' init-param", className), ex);
  }
}

代码示例来源:origin: org.springframework.boot/spring-boot

FailureAnalyzers(ConfigurableApplicationContext context, ClassLoader classLoader) {
  Assert.notNull(context, "Context must not be null");
  this.classLoader = (classLoader != null) ? classLoader : context.getClassLoader();
  this.analyzers = loadFailureAnalyzers(this.classLoader);
  prepareFailureAnalyzers(this.analyzers, context);
}

代码示例来源:origin: org.springframework/spring-webmvc

@SuppressWarnings("unchecked")
private ApplicationContextInitializer<ConfigurableApplicationContext> loadInitializer(
    String className, ConfigurableApplicationContext wac) {
  try {
    Class<?> initializerClass = ClassUtils.forName(className, wac.getClassLoader());
    Class<?> initializerContextClass =
        GenericTypeResolver.resolveTypeArgument(initializerClass, ApplicationContextInitializer.class);
    if (initializerContextClass != null && !initializerContextClass.isInstance(wac)) {
      throw new ApplicationContextException(String.format(
          "Could not apply context initializer [%s] since its generic parameter [%s] " +
          "is not assignable from the type of application context used by this " +
          "framework servlet: [%s]", initializerClass.getName(), initializerContextClass.getName(),
          wac.getClass().getName()));
    }
    return BeanUtils.instantiateClass(initializerClass, ApplicationContextInitializer.class);
  }
  catch (ClassNotFoundException ex) {
    throw new ApplicationContextException(String.format("Could not load class [%s] specified " +
        "via 'contextInitializerClasses' init-param", className), ex);
  }
}

代码示例来源:origin: NationalSecurityAgency/datawave

@Override
public ClassLoader getClassLoader() {
  lock.writeLock().lock();
  try {
    return configurableApplicationContext.getClassLoader();
  } finally {
    lock.writeLock().unlock();
  }
}

代码示例来源:origin: apache/servicemix-bundles

@SuppressWarnings("unchecked")
private ApplicationContextInitializer<ConfigurableApplicationContext> loadInitializer(
    String className, ConfigurableApplicationContext wac) {
  try {
    Class<?> initializerClass = ClassUtils.forName(className, wac.getClassLoader());
    Class<?> initializerContextClass =
        GenericTypeResolver.resolveTypeArgument(initializerClass, ApplicationContextInitializer.class);
    if (initializerContextClass != null && !initializerContextClass.isInstance(wac)) {
      throw new ApplicationContextException(String.format(
          "Could not apply context initializer [%s] since its generic parameter [%s] " +
          "is not assignable from the type of application context used by this " +
          "framework servlet: [%s]", initializerClass.getName(), initializerContextClass.getName(),
          wac.getClass().getName()));
    }
    return BeanUtils.instantiateClass(initializerClass, ApplicationContextInitializer.class);
  }
  catch (ClassNotFoundException ex) {
    throw new ApplicationContextException(String.format("Could not load class [%s] specified " +
        "via 'contextInitializerClasses' init-param", className), ex);
  }
}

代码示例来源:origin: spring-projects/spring-bus

private ModuleDefinition getModuleDefinition(ConfigurableApplicationContext applicationContext) {
  String location = "file:.";
  ClassLoader classLoader = applicationContext.getClassLoader();
  if (classLoader instanceof URLClassLoader) {
    URL[] urls = ((URLClassLoader) classLoader).getURLs();
    String firstUrl = urls[0].toString();
    if (firstUrl.startsWith("jar:") && firstUrl.endsWith("!/")) {
      location = firstUrl.substring(4, firstUrl.length() - 2);
    }
  }
  return ModuleDefinitions.simple(module.getName(),
      ModuleType.valueOf(module.getType()), location);
}

代码示例来源:origin: spring-cloud/spring-cloud-stream

@Bean
public BinderTypeRegistry binderTypeRegistry(ConfigurableApplicationContext configurableApplicationContext) {
  Map<String, BinderType> binderTypes = new HashMap<>();
  ClassLoader classLoader = configurableApplicationContext.getClassLoader();
  // the above can never be null since it will default to ClassUtils.getDefaultClassLoader(..)
  try {
    Enumeration<URL> resources = classLoader.getResources("META-INF/spring.binders");
    if (!Boolean.valueOf(this.selfContained) && (resources == null || !resources.hasMoreElements())) {
      this.logger.debug("Failed to locate 'META-INF/spring.binders' resources on the classpath."
          + " Assuming standard boot 'META-INF/spring.factories' configuration is used");
    }
    else {
      while (resources.hasMoreElements()) {
        URL url = resources.nextElement();
        UrlResource resource = new UrlResource(url);
        for (BinderType binderType : parseBinderConfigurations(classLoader, resource)) {
          binderTypes.put(binderType.getDefaultName(), binderType);
        }
      }
    }
  }
  catch (IOException | ClassNotFoundException e) {
    throw new BeanCreationException("Cannot create binder factory:", e);
  }
  return new DefaultBinderTypeRegistry(binderTypes);
}

相关文章

微信公众号

最新文章

更多

ConfigurableApplicationContext类方法