org.springframework.beans.factory.config.BeanDefinition.setDependsOn()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(10.6k)|赞(0)|评价(0)|浏览(69)

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

BeanDefinition.setDependsOn介绍

[英]Set the names of the beans that this bean depends on being initialized. The bean factory will guarantee that these beans get initialized first.
[中]设置此bean依赖于初始化的bean的名称。bean工厂将保证首先初始化这些bean。

代码示例

代码示例来源:origin: alibaba/jetcache

@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
  String[] autoInitBeanNames = beanFactory.getBeanNamesForType(AbstractCacheAutoInit.class, false, false);
  if (autoInitBeanNames != null) {
    BeanDefinition bd = beanFactory.getBeanDefinition(JetCacheAutoConfiguration.GLOBAL_CACHE_CONFIG_NAME);
    String[] dependsOn = bd.getDependsOn();
    if (dependsOn == null) {
      dependsOn = new String[0];
    }
    int oldLen = dependsOn.length;
    dependsOn = Arrays.copyOf(dependsOn, dependsOn.length + autoInitBeanNames.length);
    System.arraycopy(autoInitBeanNames,0, dependsOn, oldLen, autoInitBeanNames.length);
    bd.setDependsOn(dependsOn);
  }
}

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

private void addTransactionManagerDependencies(
    ConfigurableListableBeanFactory beanFactory, String transactionManager) {
  BeanDefinition bean = beanFactory.getBeanDefinition(transactionManager);
  Set<String> dependsOn = new LinkedHashSet<>(asList(bean.getDependsOn()));
  int initialSize = dependsOn.size();
  addDependencies(beanFactory, "javax.jms.ConnectionFactory", dependsOn);
  addDependencies(beanFactory, "javax.sql.DataSource", dependsOn);
  if (dependsOn.size() != initialSize) {
    bean.setDependsOn(StringUtils.toStringArray(dependsOn));
  }
}

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

private void addMessageDrivenContainerDependencies(
    ConfigurableListableBeanFactory beanFactory, String[] transactionManagers) {
  String[] messageDrivenContainers = getBeanNamesForType(beanFactory,
      "com.atomikos.jms.extra.MessageDrivenContainer");
  for (String messageDrivenContainer : messageDrivenContainers) {
    BeanDefinition bean = beanFactory.getBeanDefinition(messageDrivenContainer);
    Set<String> dependsOn = new LinkedHashSet<>(asList(bean.getDependsOn()));
    dependsOn.addAll(asList(transactionManagers));
    bean.setDependsOn(StringUtils.toStringArray(dependsOn));
  }
}

代码示例来源:origin: redisson/redisson

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setDependsOn(element.getAttribute(
      RedissonNamespaceParserSupport.REDISSON_REF_ATTRIBUTE));
  List<Element> childElements = DomUtils.getChildElements(element);

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

@Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {

    try {
      getBeanDefinition(BEAN_CONFIGURER_ASPECT_BEAN_NAME, beanFactory);
    } catch (NoSuchBeanDefinitionException o_O) {
      throw new IllegalStateException(
          "Invalid auditing setup! Make sure you've used @EnableJpaAuditing or <jpa:auditing /> correctly!", o_O);
    }

    for (String beanName : getEntityManagerFactoryBeanNames(beanFactory)) {
      BeanDefinition definition = getBeanDefinition(beanName, beanFactory);
      definition.setDependsOn(addStringToArray(definition.getDependsOn(), BEAN_CONFIGURER_ASPECT_BEAN_NAME));
    }
  }
}

代码示例来源:origin: redisson/redisson

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setDependsOn(element.getAttribute(
      RedissonNamespaceParserSupport.REDISSON_REF_ATTRIBUTE));
  List<Element> childElements = DomUtils.getChildElements(element);

代码示例来源:origin: Nepxion/Discovery

@Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    BeanDefinition definition = beanFactory.getBeanDefinition("feignContext");
    definition.setDependsOn("eurekaServiceRegistry", "inetUtils");
  }
}

代码示例来源:origin: resteasy/Resteasy

beanDef.setDependsOn(concat(beanDef.getDependsOn(), dependsOnArray));

代码示例来源:origin: Nepxion/Permission

@Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    BeanDefinition definition = beanFactory.getBeanDefinition("feignContext");
    definition.setDependsOn("eurekaServiceRegistry", "inetUtils");
  }
}

代码示例来源:origin: stackoverflow.com

public class DependencyConfigurer implements BeanFactoryPostProcessor {

  private Map<String, String[]> dependencies = new HashMap<String, String[]>();

  @Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    for (String beanName : dependencies.keySet()) {
      BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
      bd.setDependsOn(dependencies.get(beanName));
    }

  }

  public Map<String, String[]> getDependencies() {
    return dependencies;
  }

  public void setDependencies(Map<String, String[]> dependencies) {
    this.dependencies = dependencies;
  }

}

代码示例来源:origin: uk.org.ponder.rsf/rsf-core-servletutil

@Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    BeanDefinition loaderDef = beanFactory.getBeanDefinition("TLABPostProcessorLoader");
    String[] tlabs = beanFactory.getBeanNamesForType(TargetListAggregatingBean.class, false, false);
    loaderDef.setDependsOn(tlabs);
  }
}

代码示例来源:origin: stackoverflow.com

public class DependsOnPostProcessor implements BeanFactoryPostProcessor {

  @Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    String[] beanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
        beanFactory, B.class, true, false);
    for (String beanName : beanNames) {
      BeanDefinition definition = beanFactory.getBeanDefinition(beanName);
      definition.setDependsOn(StringUtils.addStringToArray(
          definition.getDependsOn(), "beanNameOfB");
    }
  }

}

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

public static BeanDefinition addDependsOn(BeanDefinition bean, String... beanNames) {
  List<String> dependsOnList = new ArrayList<>();
  Collections.addAll(dependsOnList, nullSafeArray(bean.getDependsOn(), String.class));
  dependsOnList.addAll(Arrays.asList(nullSafeArray(beanNames, String.class)));
  bean.setDependsOn(dependsOnList.toArray(new String[dependsOnList.size()]));
  return bean;
}

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

public static BeanDefinition addDependsOn(BeanDefinition bean, String... beanNames) {
  List<String> dependsOnList = new ArrayList<>();
  Collections.addAll(dependsOnList, nullSafeArray(bean.getDependsOn(), String.class));
  dependsOnList.addAll(Arrays.asList(nullSafeArray(beanNames, String.class)));
  bean.setDependsOn(dependsOnList.toArray(new String[dependsOnList.size()]));
  return bean;
}

代码示例来源:origin: Playtika/testcontainers-spring-boot

private void setupDependsOn(ConfigurableListableBeanFactory beanFactory, String dataSourceBeanName) {
  BeanDefinition dataSourceBeanDefinition = beanFactory.getBeanDefinition(dataSourceBeanName);
  List<String> dependsOnExisting = asList(dataSourceBeanDefinition.getDependsOn());
  dependsOnExisting.addAll(asList(dependsOn));
  dataSourceBeanDefinition.setDependsOn(dependsOnExisting.toArray(new String[]{}));
}

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

/**
 * Adds the PDX Disk Store bean name as a dependency at the beginning of the list of dependencies declared
 * by the Bean.
 *
 * @param beanDefinition the BeanDefinition to add the PDX Disk Store dependency to.
 * @see #getDependsOn(org.springframework.beans.factory.config.BeanDefinition)
 * @see org.springframework.beans.factory.config.BeanDefinition#setDependsOn(String[])
 */
private void addPdxDiskStoreDependency(BeanDefinition beanDefinition) {
  String[] newDependsOn =
    (String[]) ArrayUtils.insert(getDependsOn(beanDefinition), 0, getPdxDiskStoreName());
  beanDefinition.setDependsOn(newDependsOn);
}

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

/**
 * Adds the PDX Disk Store bean name as a dependency at the beginning of the list of dependencies declared
 * by the Bean.
 *
 * @param beanDefinition the BeanDefinition to add the PDX Disk Store dependency to.
 * @see #getDependsOn(org.springframework.beans.factory.config.BeanDefinition)
 * @see org.springframework.beans.factory.config.BeanDefinition#setDependsOn(String[])
 */
private void addPdxDiskStoreDependency(BeanDefinition beanDefinition) {
  String[] newDependsOn =
    (String[]) ArrayUtils.insert(getDependsOn(beanDefinition), 0, getPdxDiskStoreName());
  beanDefinition.setDependsOn(newDependsOn);
}

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

@Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {

    try {
      getBeanDefinition(BEAN_CONFIGURER_ASPECT_BEAN_NAME, beanFactory);
    } catch (NoSuchBeanDefinitionException o_O) {
      throw new IllegalStateException(
          "Invalid auditing setup! Make sure you've used @EnableJpaAuditing or <jpa:auditing /> correctly!", o_O);
    }

    for (String beanName : getEntityManagerFactoryBeanNames(beanFactory)) {
      BeanDefinition definition = getBeanDefinition(beanName, beanFactory);
      definition.setDependsOn(addStringToArray(definition.getDependsOn(), BEAN_CONFIGURER_ASPECT_BEAN_NAME));
    }
  }
}

代码示例来源:origin: org.zalando.spring/spring-data-jpa-businesskey

public void postProcessBeanFactory(final ConfigurableListableBeanFactory beanFactory) throws BeansException {

    try {
      getBeanDefinition(BEAN_CONFIGURER_ASPECT_BEAN_NAME, beanFactory);
    } catch (NoSuchBeanDefinitionException o_O) {
      throw new IllegalStateException(
        "Invalid auditing setup! Make sure you've used @EnableJpaAuditing or <jpa:auditing /> correctly!", o_O);
    }

    for (String beanName : getEntityManagerFactoryBeanNames(beanFactory)) {
      BeanDefinition definition = getBeanDefinition(beanName, beanFactory);
      definition.setDependsOn(addStringToArray(definition.getDependsOn(), BEAN_CONFIGURER_ASPECT_BEAN_NAME));
    }

// for (String beanName : beanNamesForTypeIncludingAncestors(beanFactory, BusinessKeyGenerator.class, true, false)) {
// BeanDefinition definition = beanFactory.getBeanDefinition(beanName);
// definition.setLazyInit(true);
// }
  }

代码示例来源:origin: org.springframework.fu/spring-fu-autoconfigure-adapter

@Override
  public void initialize(GenericApplicationContext context) {
    context.registerBean(MongoClientSettingsBuilderCustomizer.class, () -> new MongoReactiveAutoConfiguration.NettyDriverConfiguration().nettyDriverCustomizer(context.getDefaultListableBeanFactory().getBeanProvider(MongoClientSettings.class)));

    context.registerBean(MongoClient.class, () -> new MongoReactiveAutoConfiguration(context.getBeanProvider(MongoClientSettings.class)).reactiveStreamsMongoClient(this.properties, context.getEnvironment(), context.getBeanProvider(MongoClientSettingsBuilderCustomizer.class)), (definition) -> {
      if (embeddedServer) {
        definition.setDependsOn("embeddedMongoServer");
      }
    });
  }
}

相关文章

微信公众号

最新文章

更多