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

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

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

BeanDefinition.hasAttribute介绍

暂无

代码示例

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

/**
 * Automatically inject job-repository from a job into its steps. Only
 * inject if the step is an AbstractStep or StepParserStepFactoryBean.
 *
 * @param beanName
 * @param beanFactory
 */
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
  BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
  if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
    MutablePropertyValues pvs = bd.getPropertyValues();
    if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
      String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
      PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
          JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
      if (jobRepository != null) {
        // Set the job's JobRepository onto the step
        pvs.addPropertyValue(jobRepository);
      }
      else {
        // No JobRepository found, so inject the default
        RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
        pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
      }
    }
  }
}

代码示例来源:origin: org.tinygroup/org.tinygroup.springmerge

public boolean hasAttribute(String name) {
  if (isBeanClassNameUpdated) {// 如果class变的话,用变更后的属性定义
    return mergedBeanDefinition.hasAttribute(name);
  }
  boolean mergedhasAttribute = mergedBeanDefinition.hasAttribute(name);
  boolean currenthasAttribute = currentBeanDefinition.hasAttribute(name);
  if (currenthasAttribute || mergedhasAttribute) {
    if (logger.isInfoEnabled()) {
      logger.info("将原hasAttribute属性值" + currenthasAttribute + "替换为" + mergedhasAttribute);
    }
    return true;
  }
  return false;
}

代码示例来源:origin: org.mule.modules/mule-module-spring-config

public static boolean testFlag(BeanDefinition bean, String flag)
{
  return null != bean
      && bean.hasAttribute(flag)
      && bean.getAttribute(flag) instanceof Boolean
      && ((Boolean) bean.getAttribute(flag)).booleanValue();
}

代码示例来源:origin: org.eclipse.gemini.blueprint/gemini-blueprint-core

public static List<ComponentMetadata> buildComponentMetadataFor(ConfigurableListableBeanFactory factory) {
  List<ComponentMetadata> metadata = new ArrayList<ComponentMetadata>();
  String[] components = factory.getBeanDefinitionNames();
  for (String beanName : components) {
    BeanDefinition definition = factory.getBeanDefinition(beanName);
    // filter generated definitions
    if (!definition.hasAttribute(PROMOTED_REF)) {
      // add metadata for top-level definitions
      metadata.add(MetadataFactory.buildComponentMetadataFor(beanName, definition));
      // look for nested ones
      metadata.addAll(MetadataFactory.buildNestedComponentMetadataFor(definition));
    }
  }
  return metadata;
}

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

/**
 * Automatically inject job-repository from a job into its steps. Only
 * inject if the step is an AbstractStep or StepParserStepFactoryBean.
 *
 * @param beanName
 * @param beanFactory
 */
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
  BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
  if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
    MutablePropertyValues pvs = bd.getPropertyValues();
    if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
      String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
      PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
          JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
      if (jobRepository != null) {
        // Set the job's JobRepository onto the step
        pvs.addPropertyValue(jobRepository);
      }
      else {
        // No JobRepository found, so inject the default
        RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
        pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
      }
    }
  }
}

代码示例来源:origin: org.springframework.batch/org.springframework.batch.core

/**
 * Automatically inject job-repository from a job into its steps. Only
 * inject if the step is an AbstractStep or StepParserStepFactoryBean.
 * 
 * @param beanName
 * @param beanFactory
 */
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
  BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
  if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
    MutablePropertyValues pvs = bd.getPropertyValues();
    if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
      String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
      PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
          JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
      if (jobRepository != null) {
        // Set the job's JobRepository onto the step
        pvs.addPropertyValue(jobRepository);
      }
      else {
        // No JobRepository found, so inject the default
        RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
        pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
      }
    }
  }
}

代码示例来源:origin: org.springframework.batch.core/org.motechproject.org.springframework.batch.core

/**
 * Automatically inject job-repository from a job into its steps. Only
 * inject if the step is an AbstractStep or StepParserStepFactoryBean.
 *
 * @param beanName
 * @param beanFactory
 */
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
  BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
  if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
    MutablePropertyValues pvs = bd.getPropertyValues();
    if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
      String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
      PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
          JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
      if (jobRepository != null) {
        // Set the job's JobRepository onto the step
        pvs.addPropertyValue(jobRepository);
      }
      else {
        // No JobRepository found, so inject the default
        RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
        pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
      }
    }
  }
}

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

/**
 * Automatically inject job-repository from a job into its steps. Only
 * inject if the step is an AbstractStep or StepParserStepFactoryBean.
 *
 * @param beanName
 * @param beanFactory
 */
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
  BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
  if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
    MutablePropertyValues pvs = bd.getPropertyValues();
    if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
      String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
      PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
          JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
      if (jobRepository != null) {
        // Set the job's JobRepository onto the step
        pvs.addPropertyValue(jobRepository);
      }
      else {
        // No JobRepository found, so inject the default
        RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
        pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
      }
    }
  }
}

代码示例来源:origin: org.springframework.javaconfig/org.springframework.config.java

private void parseAnyConfigurationClasses(ConfigurableListableBeanFactory externalBeanFactory,
                     JavaConfigBeanFactory internalBeanFactory) {
  
  // linked map is important for maintaining predictable ordering of configuration classes.
  // this is important in bean / value override situations.
  LinkedHashMap<String, ClassPathResource> configClassResources = new LinkedHashMap<String, ClassPathResource>();
  for (String beanName : externalBeanFactory.getBeanDefinitionNames()) {
    BeanDefinition beanDef = externalBeanFactory.getBeanDefinition(beanName);
    if (beanDef.isAbstract())
      continue;
    if (beanDef.hasAttribute(ConfigurationClass.IS_CONFIGURATION_CLASS)) {
      String path = ClassUtils.convertClassNameToResourcePath(beanDef.getBeanClassName());
      configClassResources.put(beanName, new ClassPathResource(path));
    }
  }
  JavaConfigBeanDefinitionReader reader;
      reader = new AsmJavaConfigBeanDefinitionReader(internalBeanFactory);
  reader.loadBeanDefinitions(configClassResources);
}

代码示例来源:origin: org.eclipse.gemini.blueprint/gemini-blueprint-core

public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
  boolean trace = log.isTraceEnabled();
  String[] names = beanFactory.getBeanDefinitionNames();
  for (String name : names) {
    BeanDefinition definition = beanFactory.getBeanDefinition(name);
    if (definition.hasAttribute(ParsingUtils.BLUEPRINT_MARKER_NAME)) {
      ConstructorArgumentValues cArgs = definition.getConstructorArgumentValues();
      if (trace)
        log.trace("Inspecting cycles for (blueprint) bean " + name);
      tag(cArgs.getGenericArgumentValues(), name, definition);
      tag(cArgs.getIndexedArgumentValues().values(), name, definition);
    }
  }
}

代码示例来源:origin: net.sf.taverna.t2.infrastructure/platform

for (String beanName : factory.getBeanDefinitionNames()) {
  BeanDefinition bd = factory.getBeanDefinition(beanName);
  if (bd.hasAttribute(REPOSITORY_BEAN_ATTRIBUTE_NAME)
      && bd.hasAttribute(ARTIFACT_BEAN_ATTRIBUTE_NAME)) {
    String repositoryBeanName = (String) bd
        .getAttribute(REPOSITORY_BEAN_ATTRIBUTE_NAME);

代码示例来源:origin: org.springframework.javaconfig/org.springframework.config.java

/**
 * Post-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates
 * are then enhanced by a {@link ConfigurationEnhancer}. Candidate status is determined by
 * BeanDefinition attribute metadata.
 *
 * @author  Chris Beams
 * @see     ConfigurationClass#IS_CONFIGURATION_CLASS
 * @see     ConfigurationEnhancer
 * @see     BeanFactoryPostProcessor
 */
private void enhanceAnyConfigurationClasses(ConfigurableListableBeanFactory externalBeanFactory,
                      JavaConfigBeanFactory internalBeanFactory) {
  ConfigurationEnhancer enhancer = new CglibConfigurationEnhancer(internalBeanFactory);
  int configClassesEnhanced = 0;
  for (String beanName : externalBeanFactory.getBeanDefinitionNames()) {
    BeanDefinition beanDef = externalBeanFactory.getBeanDefinition(beanName);
    // is the beanDef marked as representing a configuration class?
    if (!beanDef.hasAttribute(ConfigurationClass.IS_CONFIGURATION_CLASS))
      continue;
    String configClassName = beanDef.getBeanClassName();
    String enhancedClassName = enhancer.enhance(configClassName);
    if (logger.isDebugEnabled())
      logger.debug(String.format("Replacing bean definition '%s' existing class name '%s' with enhanced class name '%s'",
                    beanName, configClassName, enhancedClassName));
    beanDef.setBeanClassName(enhancedClassName);
    configClassesEnhanced++;
  }
  if (configClassesEnhanced == 0)
    logger.warn("Found no @Configuration class BeanDefinitions within " + internalBeanFactory);
}

代码示例来源:origin: org.springframework.javaconfig/org.springframework.config.java

if (!beanDef.hasAttribute(ConfigurationClass.IS_CONFIGURATION_CLASS))
  return bean;

代码示例来源:origin: org.eclipse.gemini.blueprint/gemini-blueprint-core

/**
 * Constructs a new <code>SpringLocalComponentMetadata</code> instance.
 * 
 * @param name bean name
 * @param definition Spring bean definition
 */
public SimpleBeanMetadata(String name, BeanDefinition definition) {
  super(name, definition);
  final String factoryMtd = definition.getFactoryMethodName();
  if (StringUtils.hasText(factoryMtd)) {
    factoryMethod = factoryMtd;
    String factory = definition.getFactoryBeanName();
    if (StringUtils.hasText(factory)) {
      factoryComponent = new SimpleRefMetadata(factory);
    } else {
      factoryComponent = null;
    }
  } else {
    factoryComponent = null;
    factoryMethod = null;
  }
  arguments = MetadataUtils.getBeanArguments(definition);
  properties = MetadataUtils.getBeanProperties(definition);
  // double check if the definition had "scope" declared
  boolean hasAttribute = definition.hasAttribute(BlueprintParser.DECLARED_SCOPE);
  scope = (hasAttribute ? (StringUtils.hasText(name) ? beanDefinition.getScope() : null) : null);
}

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

private void bind(ConfigurableListableBeanFactory beanFactory) {
  for (String name : beanFactory.getBeanDefinitionNames()) {
    BeanDefinition definition = beanFactory.getBeanDefinition(name);
    
    if (definition.hasAttribute(SPRING_GUICE_SOURCE)) {
      continue;
    }
    Optional<Annotation> bindingAnnotation = getAnnotationForBeanDefinition(definition, beanFactory);
    if (definition.isAutowireCandidate()
        && definition.getRole() == AbstractBeanDefinition.ROLE_APPLICATION) {
      Class<?> type = beanFactory.getType(name);
      if (type == null) {
        continue;
      }
      final String beanName = name;
      Provider<?> typeProvider = BeanFactoryProvider.typed(beanFactory, type, bindingAnnotation);
      Provider<?> namedProvider = BeanFactoryProvider.named(beanFactory,
          beanName, type, bindingAnnotation);
      if (!type.isInterface() && !ClassUtils.isCglibProxyClass(type)) {
        bindConditionally(binder(), name, type, typeProvider, namedProvider, bindingAnnotation);
      }
      for (Class<?> iface : ClassUtils.getAllInterfacesForClass(type)) {
        bindConditionally(binder(), name, iface, typeProvider, namedProvider, bindingAnnotation);
      }
      for (Type iface : type.getGenericInterfaces()) {
        bindConditionally(binder(), name, iface, typeProvider, namedProvider, bindingAnnotation);
      }
    }
  }
}

相关文章

微信公众号

最新文章

更多