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

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

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

BeanDefinition.setFactoryMethodName介绍

[英]Specify a factory method, if any. This method will be invoked with constructor arguments, or with no arguments if none are specified. The method will be invoked on the specified factory bean, if any, or otherwise as a static method on the local bean class.
[中]

代码示例

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

protected void visitFactoryMethodName(BeanDefinition beanDefinition) {
  String factoryMethodName = beanDefinition.getFactoryMethodName();
  if (factoryMethodName != null) {
    String resolvedName = resolveStringValue(factoryMethodName);
    if (!factoryMethodName.equals(resolvedName)) {
      beanDefinition.setFactoryMethodName(resolvedName);
    }
  }
}

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

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setFactoryBeanName(element.getAttribute(
      RedissonNamespaceParserSupport.READ_WRITE_LOCK_REF_ATTRIBUTE));
  String typeName
      = Conventions.attributeNameToPropertyName(element.getLocalName());
  bd.setFactoryMethodName(typeName);
}

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

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setFactoryBeanName(element.getAttribute(
      RedissonNamespaceParserSupport.READ_WRITE_LOCK_REF_ATTRIBUTE));
  String typeName
      = Conventions.attributeNameToPropertyName(element.getLocalName());
  bd.setFactoryMethodName(typeName);
}

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

protected void visitFactoryMethodName(BeanDefinition beanDefinition) {
  String factoryMethodName = beanDefinition.getFactoryMethodName();
  if (factoryMethodName != null) {
    String resolvedName = resolveStringValue(factoryMethodName);
    if (!factoryMethodName.equals(resolvedName)) {
      beanDefinition.setFactoryMethodName(resolvedName);
    }
  }
}

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

@Test
public void severalFixedRatesAgainstNestedCglibProxy() {
  BeanDefinition processorDefinition = new RootBeanDefinition(ScheduledAnnotationBeanPostProcessor.class);
  BeanDefinition targetDefinition = new RootBeanDefinition(SeveralFixedRatesWithRepeatedScheduledAnnotationTestBean.class);
  targetDefinition.setFactoryMethodName("nestedProxy");
  severalFixedRates(context, processorDefinition, targetDefinition);
}

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

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setFactoryBeanName(element.getAttribute(
      RedissonNamespaceParserSupport.REDISSON_REF_ATTRIBUTE));
  String typeName
      = Conventions.attributeNameToPropertyName(element.getLocalName());
  bd.setFactoryMethodName("get" + StringUtils.capitalize(typeName));
  
  helper.addConstructorArgs(element, KEY_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, TOPIC_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, PATTERN_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, SERVICE_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, CODEC_REF_ATTRIBUTE,
      Codec.class, builder);
  if (RDestroyable.class.isAssignableFrom(getBeanClass(element))) {
    ((AbstractBeanDefinition) bd).setDestroyMethodName("destroy");
  }
}

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

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setFactoryBeanName(element.getAttribute(
      RedissonNamespaceParserSupport.REDISSON_REF_ATTRIBUTE));
  String typeName
      = Conventions.attributeNameToPropertyName(element.getLocalName());
  bd.setFactoryMethodName("get" + StringUtils.capitalize(typeName));
  
  helper.addConstructorArgs(element, KEY_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, TOPIC_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, PATTERN_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, SERVICE_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, CODEC_REF_ATTRIBUTE,
      Codec.class, builder);
  if (RDestroyable.class.isAssignableFrom(getBeanClass(element))) {
    ((AbstractBeanDefinition) bd).setDestroyMethodName("destroy");
  }
}

代码示例来源:origin: camunda/camunda-bpm-platform

protected void visitFactoryMethodName(BeanDefinition beanDefinition) {
  String factoryMethodName = beanDefinition.getFactoryMethodName();
  if (factoryMethodName != null) {
    String resolvedName = resolveStringValue(factoryMethodName);
    if (!factoryMethodName.equals(resolvedName)) {
      beanDefinition.setFactoryMethodName(resolvedName);
    }
  }
}

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

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setFactoryBeanName(element.getAttribute(
      RedissonNamespaceParserSupport.READ_WRITE_LOCK_REF_ATTRIBUTE));
  String typeName
      = Conventions.attributeNameToPropertyName(element.getLocalName());
  bd.setFactoryMethodName(typeName);
}

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

protected BeanDefinition registerConnectionRepository(BeanDefinitionRegistry registry, String usersConnectionRepositoryId, String connectionRepositoryId, String userIdSourceRef) {
  if (logger.isDebugEnabled()) {
    logger.debug("Registering ConnectionRepository bean");
  }        
  // TODO: Hackish use of SpEL to reference userIdSource
  BeanDefinition connectionRepositoryBD = BeanDefinitionBuilder.genericBeanDefinition().addConstructorArgValue("#{" + userIdSourceRef + ".userId}").getBeanDefinition();
  connectionRepositoryBD.setFactoryBeanName(usersConnectionRepositoryId);
  connectionRepositoryBD.setFactoryMethodName(CREATE_CONNECTION_REPOSITORY_METHOD_NAME);
  connectionRepositoryBD.setScope("request");
  registry.registerBeanDefinition(connectionRepositoryId, decorateWithScopedProxy(connectionRepositoryId, connectionRepositoryBD, registry));
  return connectionRepositoryBD;
}

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

protected void visitFactoryMethodName(BeanDefinition beanDefinition) {
  String factoryMethodName = beanDefinition.getFactoryMethodName();
  if (factoryMethodName != null) {
    String resolvedName = resolveStringValue(factoryMethodName);
    if (!factoryMethodName.equals(resolvedName)) {
      beanDefinition.setFactoryMethodName(resolvedName);
    }
  }
}

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

public class EnumAutowiringBeanFactoryPostProcessor implements BeanFactoryPostProcessor {

  private final List<Class<? extends Enum>> enumClasses = new ArrayList<>();

  public EnumAutowiringBeanFactoryPostProcessor(Class<? extends Enum>... enumClasses) {
    Collections.addAll(this.enumClasses, enumClasses);
  }

  @Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    for (Class<? extends Enum> enumClass : enumClasses) {
      for (Enum enumVal : enumClass.getEnumConstants()) {
        BeanDefinition def = new AnnotatedGenericBeanDefinition(enumClass);
        def.setBeanClassName(enumClass.getName());
        def.setFactoryMethodName("valueOf");
        def.getConstructorArgumentValues().addGenericArgumentValue(enumVal.name());
        ((BeanDefinitionRegistry) beanFactory).registerBeanDefinition(enumClass.getName() + "." + enumVal.name(), def);
      }
    }
  }
}

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

public String getFactoryBeanName() {
  if (isBeanClassNameUpdated) {// 如果class变的话,用变更后的属性定义
    return mergedBeanDefinition.getFactoryBeanName();
  }
  String mergedFactoryBeanName = mergedBeanDefinition.getFactoryBeanName();
  String currentFactoryBeanName = currentBeanDefinition.getFactoryBeanName();
  if (mergedFactoryBeanName == null || mergedFactoryBeanName.equals(currentFactoryBeanName)) {
    return currentFactoryBeanName;
  }
  currentBeanDefinition.setFactoryMethodName(mergedFactoryBeanName);
  if (logger.isInfoEnabled()) {
    logger.info("将原FactoryBeanName属性值:" + currentFactoryBeanName + "替换为"
        + mergedFactoryBeanName);
  }
  return mergedFactoryBeanName;
}

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

public class TestClockRegistrar implements ImportBeanDefinitionRegistrar {

  @Override
  public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
      BeanDefinitionRegistry registry) {
    String pattern = (String) importingClassMetadata
        .getAnnotationAttributes(TestClock.class.getName()).get("value");
    BeanDefinition beanDefinition = new RootBeanDefinition(Clock.class);
    beanDefinition.setFactoryMethodName("fixed");
    Instant instant = Instant.parse(pattern);
    ZoneId zone = TimeZone.getDefault().toZoneId();
    beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, instant);
    beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(1, zone);
    registry.registerBeanDefinition("clock", beanDefinition);
  }

}

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

private BeanDefinition registerApiBindingBean(BeanDefinitionRegistry registry, Class<? extends ApiHelper<?>> apiHelperClass, 
    Class<?> apiBindingType,Map<String, Object> allAttributes) {
  if (logger.isDebugEnabled()) {
    logger.debug("Registering API Helper bean for " + ClassUtils.getShortName(apiBindingType));
  }        
  String helperId = "__" + ClassUtils.getShortNameAsProperty(apiBindingType) + "ApiHelper";
  // TODO: Make the bean IDs here configurable.
  BeanDefinition helperBD = getApiHelperBeanDefinitionBuilder(allAttributes).getBeanDefinition();
  registry.registerBeanDefinition(helperId, helperBD);
  
  if (logger.isDebugEnabled()) {
    logger.debug("Creating API Binding bean for " + ClassUtils.getShortName(apiBindingType));
  }        
  BeanDefinition bindingBD = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
  bindingBD.setFactoryBeanName(helperId);
  bindingBD.setFactoryMethodName("getApi");
  bindingBD.setScope("request");
  BeanDefinitionHolder scopedProxyBDH = ScopedProxyUtils.createScopedProxy(
      new BeanDefinitionHolder(bindingBD, ClassUtils.getShortNameAsProperty(apiBindingType)), registry, false);
  registry.registerBeanDefinition(scopedProxyBDH.getBeanName(), scopedProxyBDH.getBeanDefinition());
  return scopedProxyBDH.getBeanDefinition();
}

代码示例来源:origin: tacitknowledge/flip

BeanDefinition featureServiceRawBean = featureServiceBuilder.getRawBeanDefinition();
featureServiceRawBean.setFactoryBeanName(FlipSpringAspect.FEATURE_SERVICE_FACTORY_BEAN_NAME);
featureServiceRawBean.setFactoryMethodName("createFeatureService");
parserContext.getRegistry().registerBeanDefinition(FlipSpringAspect.FEATURE_SERVICE_BEAN_NAME, featureServiceBuilder.getBeanDefinition());

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

@Override
protected void parseNested(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, BeanDefinition bd) {
  bd.setFactoryBeanName(element.getAttribute(
      RedissonNamespaceParserSupport.REDISSON_REF_ATTRIBUTE));
  String typeName
      = Conventions.attributeNameToPropertyName(element.getLocalName());
  bd.setFactoryMethodName("get" + StringUtils.capitalize(typeName));
  
  helper.addConstructorArgs(element, KEY_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, TOPIC_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, PATTERN_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, SERVICE_ATTRIBUTE,
      String.class, builder);
  helper.addConstructorArgs(element, CODEC_REF_ATTRIBUTE,
      Codec.class, builder);
  if (RDestroyable.class.isAssignableFrom(getBeanClass(element))) {
    ((AbstractBeanDefinition) bd).setDestroyMethodName("destroy");
  }
}

相关文章

微信公众号

最新文章

更多