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

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

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

BeanDefinition.setPrimary介绍

[英]Set whether this bean is a primary autowire candidate.

If this value is true for exactly one bean among multiple matching candidates, it will serve as a tie-breaker.
[中]设置此bean是否为主要autowire候选。
如果该值对于多个匹配候选项中的一个bean为真,那么它将充当平局破坏者。

代码示例

代码示例来源:origin: spockframework/spock

@Override
protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition) {
 super.postProcessComponentDefinition(componentDefinition);
 componentDefinition.getBeanDefinition().setPrimary(true);
}

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

@Autowired
void register(GenericApplicationContext ctx) {
  ctx.registerBean("spouse", TestBean.class,
      () -> new TestBean("functional"));
  Supplier<TestBean> testBeanSupplier = () -> new TestBean(ctx.getBean("spouse", TestBean.class));
  ctx.registerBean(TestBean.class,
      testBeanSupplier,
      bd -> bd.setPrimary(true));
}

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

@Test
public void byTypeAutowireWithPrimaryInParentFactory() throws Exception {
  CountingFactory.reset();
  DefaultListableBeanFactory parent = getBeanFactory("autowire-with-exclusion.xml");
  parent.getBeanDefinition("props1").setPrimary(true);
  parent.preInstantiateSingletons();
  DefaultListableBeanFactory child = new DefaultListableBeanFactory(parent);
  RootBeanDefinition robDef = new RootBeanDefinition(TestBean.class);
  robDef.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE);
  robDef.getPropertyValues().add("spouse", new RuntimeBeanReference("sally"));
  child.registerBeanDefinition("rob2", robDef);
  RootBeanDefinition propsDef = new RootBeanDefinition(PropertiesFactoryBean.class);
  propsDef.getPropertyValues().add("properties", "name=props3");
  child.registerBeanDefinition("props3", propsDef);
  TestBean rob = (TestBean) child.getBean("rob2");
  assertEquals("props1", rob.getSomeProperties().getProperty("name"));
  assertEquals(1, CountingFactory.getFactoryBeanInstanceCount());
}

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

@Test
public void byTypeAutowireWithPrimaryInParentAndChild() throws Exception {
  CountingFactory.reset();
  DefaultListableBeanFactory parent = getBeanFactory("autowire-with-exclusion.xml");
  parent.getBeanDefinition("props1").setPrimary(true);
  parent.preInstantiateSingletons();
  DefaultListableBeanFactory child = new DefaultListableBeanFactory(parent);
  RootBeanDefinition robDef = new RootBeanDefinition(TestBean.class);
  robDef.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE);
  robDef.getPropertyValues().add("spouse", new RuntimeBeanReference("sally"));
  child.registerBeanDefinition("rob2", robDef);
  RootBeanDefinition propsDef = new RootBeanDefinition(PropertiesFactoryBean.class);
  propsDef.getPropertyValues().add("properties", "name=props3");
  propsDef.setPrimary(true);
  child.registerBeanDefinition("props3", propsDef);
  TestBean rob = (TestBean) child.getBean("rob2");
  assertEquals("props3", rob.getSomeProperties().getProperty("name"));
  assertEquals(1, CountingFactory.getFactoryBeanInstanceCount());
}

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

targetDefinition.setPrimary(false);

代码示例来源:origin: mulesoft/mule

private static BeanDefinition getPrimaryBeanDefinition(Class<?> beanType) {
 BeanDefinition beanDefinition = getBeanDefinition(beanType);
 beanDefinition.setPrimary(true);
 return beanDefinition;
}

代码示例来源:origin: mulesoft/mule

beanDefinition.setPrimary(true);

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

private BeanDefinition createEmbeddedBeanDefinition(boolean primary) {
  BeanDefinition beanDefinition = new RootBeanDefinition(
      EmbeddedDataSourceFactoryBean.class);
  beanDefinition.setPrimary(primary);
  return beanDefinition;
}

代码示例来源:origin: io.leopard/leopard-schema

protected void initPrimaryBean(BeanDefinition definition) {
  String className = definition.getBeanClassName();
  if (className.endsWith("DaoCacheImpl")) {
    // System.err.println("setPrimary className:" + className);
    definition.setPrimary(true);
  }
  if (className.endsWith("ServiceTestImpl")) {
    definition.setPrimary(true);
    // System.out.println("className:" + className);
  }
}

代码示例来源:origin: org.kubek2k/springockito-annotations

@Override
  protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition) {
    super.postProcessComponentDefinition(componentDefinition);
    componentDefinition.getBeanDefinition().setPrimary(true);
  }
}

代码示例来源:origin: org.kubek2k/springockito

@Override
  protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition) {
    super.postProcessComponentDefinition(componentDefinition);
    componentDefinition.getBeanDefinition().setPrimary(true);
  }
}

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

@Override
  protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition) {
    super.postProcessComponentDefinition(componentDefinition);
    componentDefinition.getBeanDefinition().setPrimary(true);
  }
}

代码示例来源:origin: top.wboost/datasource-spring-boot-starter

private void initConfig() {
  List<TransactionManagerDto> transactionManagerDtos = new ArrayList<>();
  transactionManagerPropertiesUse.forEach((datasource,props) -> {
    transactionManagerDtos.addAll(initPlatformTransactionManager(props));
  });
  TransactionManagerDto primaryTransactionManager = null;
  for(int i = 0;i<transactionManagerDtos.size();i++) {
    TransactionManagerDto transactionManagerDto = transactionManagerDtos.get(i);
    if (this.transactionManagerCustomizers != null) {
      //this.transactionManagerCustomizers.customize(transactionManagerDto.platformTransactionManager);
    }
    if (primaryTransactionManager == null && transactionManagerDto.dsName.equals(GlobalForDataSourceBootStarter.PRIMARY_DATASOURCE_NAME) || transactionManagerDto.dsName.equals("primary")) {
      primaryTransactionManager = transactionManagerDto;
    }
  }
  if (primaryTransactionManager == null) {
    primaryTransactionManager = transactionManagerDtos.get(0);
  }
  primaryTransactionManager.getBeanDefinition().setPrimary(true);
  for(TransactionManagerDto transactionManagerDto : transactionManagerDtos) {
    this.beanFactory.registerBeanDefinition(transactionManagerDto.beanName, transactionManagerDto.beanDefinition);
    log.info("register transactionManager: {}, for datasource: {}", transactionManagerDto.beanName,
        transactionManagerDto.dsName);
  }
  this.beanFactory.registerAlias( primaryTransactionManager.beanName, PRIMARYT_TRANSACTION_MANAGER);
  log.info("alias primary transactionManager: {} for {}. datasource is {}", PRIMARYT_TRANSACTION_MANAGER,
      primaryTransactionManager.beanName,primaryTransactionManager.dsName);
}

代码示例来源:origin: alipay/sofa-tracer

private void createDataSourceProxy(ConfigurableListableBeanFactory beanFactory,
                  String beanName, BeanDefinition originDataSource,
                  String jdbcUrl) {
  // re-register origin datasource bean
  BeanDefinitionRegistry beanDefinitionRegistry = (BeanDefinitionRegistry) beanFactory;
  beanDefinitionRegistry.removeBeanDefinition(beanName);
  boolean isPrimary = originDataSource.isPrimary();
  originDataSource.setPrimary(false);
  beanDefinitionRegistry.registerBeanDefinition(transformDatasourceBeanName(beanName),
    originDataSource);
  // register proxied datasource
  RootBeanDefinition proxiedBeanDefinition = new RootBeanDefinition(SmartDataSource.class);
  proxiedBeanDefinition.setRole(BeanDefinition.ROLE_APPLICATION);
  proxiedBeanDefinition.setPrimary(isPrimary);
  proxiedBeanDefinition.setInitMethodName("init");
  proxiedBeanDefinition.setDependsOn(transformDatasourceBeanName(beanName));
  MutablePropertyValues originValues = originDataSource.getPropertyValues();
  MutablePropertyValues values = new MutablePropertyValues();
  String appName = environment.getProperty(TRACER_APPNAME_KEY);
  Assert.isTrue(!StringUtils.isBlank(appName), TRACER_APPNAME_KEY + " must be configured!");
  values.add("appName", appName);
  values.add("delegate", new RuntimeBeanReference(transformDatasourceBeanName(beanName)));
  values.add("dbType",
    DataSourceUtils.resolveDbTypeFromUrl(unwrapPropertyValue(originValues.get(jdbcUrl))));
  values.add("database",
    DataSourceUtils.resolveDatabaseFromUrl(unwrapPropertyValue(originValues.get(jdbcUrl))));
  proxiedBeanDefinition.setPropertyValues(values);
  beanDefinitionRegistry.registerBeanDefinition(beanName, proxiedBeanDefinition);
}

代码示例来源:origin: com.alipay.sofa/tracer-sofa-boot-starter

private void createDataSourceProxy(ConfigurableListableBeanFactory beanFactory,
                  String beanName, BeanDefinition originDataSource,
                  String jdbcUrl) {
  // re-register origin datasource bean
  BeanDefinitionRegistry beanDefinitionRegistry = (BeanDefinitionRegistry) beanFactory;
  beanDefinitionRegistry.removeBeanDefinition(beanName);
  boolean isPrimary = originDataSource.isPrimary();
  originDataSource.setPrimary(false);
  beanDefinitionRegistry.registerBeanDefinition(transformDatasourceBeanName(beanName),
    originDataSource);
  // register proxied datasource
  RootBeanDefinition proxiedBeanDefinition = new RootBeanDefinition(SmartDataSource.class);
  proxiedBeanDefinition.setRole(BeanDefinition.ROLE_APPLICATION);
  proxiedBeanDefinition.setPrimary(isPrimary);
  proxiedBeanDefinition.setInitMethodName("init");
  proxiedBeanDefinition.setDependsOn(transformDatasourceBeanName(beanName));
  MutablePropertyValues originValues = originDataSource.getPropertyValues();
  MutablePropertyValues values = new MutablePropertyValues();
  String appName = environment.getProperty(TRACER_APPNAME_KEY);
  Assert.isTrue(!StringUtils.isBlank(appName), TRACER_APPNAME_KEY + " must be configured!");
  values.add("appName", appName);
  values.add("delegate", new RuntimeBeanReference(transformDatasourceBeanName(beanName)));
  values.add("dbType", resolveDbTypeFromUrl(unwrapPropertyValue(originValues.get(jdbcUrl))));
  values.add("database",
    resolveDatabaseFromUrl(unwrapPropertyValue(originValues.get(jdbcUrl))));
  proxiedBeanDefinition.setPropertyValues(values);
  beanDefinitionRegistry.registerBeanDefinition(beanName, proxiedBeanDefinition);
}

代码示例来源:origin: org.beangle.ioc/beangle-ioc-spring

for (String name : names) {
 BeanDefinition bd = registry.getBeanDefinition(name);
 bd.setPrimary(name.equals(holder.getBeanName()));

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop

targetDefinition.setPrimary(false);

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

targetDefinition.setPrimary(false);

相关文章

微信公众号

最新文章

更多