Example usage for org.springframework.beans.factory.annotation AnnotatedGenericBeanDefinition setScope

List of usage examples for org.springframework.beans.factory.annotation AnnotatedGenericBeanDefinition setScope

Introduction

In this page you can find the example usage for org.springframework.beans.factory.annotation AnnotatedGenericBeanDefinition setScope.

Prototype

@Override
public void setScope(@Nullable String scope) 

Source Link

Document

Set the name of the target scope for the bean.

Usage

From source file:org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.java

/**
 * Register the {@link Configuration} class itself as a bean definition.
 *///  w w  w  . j  a  v  a  2s.c o  m
private void registerBeanDefinitionForImportedConfigurationClass(ConfigurationClass configClass) {
    AnnotationMetadata metadata = configClass.getMetadata();
    AnnotatedGenericBeanDefinition configBeanDef = new AnnotatedGenericBeanDefinition(metadata);

    ScopeMetadata scopeMetadata = scopeMetadataResolver.resolveScopeMetadata(configBeanDef);
    configBeanDef.setScope(scopeMetadata.getScopeName());
    String configBeanName = this.importBeanNameGenerator.generateBeanName(configBeanDef, this.registry);
    AnnotationConfigUtils.processCommonDefinitionAnnotations(configBeanDef, metadata);

    BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(configBeanDef, configBeanName);
    definitionHolder = AnnotationConfigUtils.applyScopedProxyMode(scopeMetadata, definitionHolder,
            this.registry);
    this.registry.registerBeanDefinition(definitionHolder.getBeanName(), definitionHolder.getBeanDefinition());
    configClass.setBeanName(configBeanName);

    if (logger.isDebugEnabled()) {
        logger.debug("Registered bean definition for imported class '" + configBeanName + "'");
    }
}

From source file:org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig.java

public void registerBean(ReaderEventListener eventListener, ClassLoader classloader) throws IOException {
    IJavaProject project = this.configClass.getJavaProject();
    if (project == null) {
        return;//from   w  w  w .j a  v a 2 s .  c o  m
    }

    CachingJdtMetadataReaderFactory metadataReaderFactory = new CachingJdtMetadataReaderFactory(project,
            classloader);
    MetadataReader metadataReader = metadataReaderFactory
            .getMetadataReader(this.configClass.getFullyQualifiedName());

    AnnotatedGenericBeanDefinition abd = new AnnotatedGenericBeanDefinition(
            metadataReader.getAnnotationMetadata());

    //      AnnotationMetadata metadata = abd.getMetadata();
    //      if (metadata.isAnnotated(Profile.class.getName())) {
    //         AnnotationAttributes profile = MetadataUtils.attributesFor(metadata, Profile.class);
    //         if (!this.environment.acceptsProfiles(profile.getStringArray("value"))) {
    //            return;
    //         }
    //      }
    //      ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(abd);
    //      abd.setScope(scopeMetadata.getScopeName());
    abd.setScope(BeanDefinition.SCOPE_SINGLETON);

    AnnotationBeanNameGenerator nameGenerator = new AnnotationBeanNameGenerator();
    String beanName = nameGenerator.generateBeanName(abd, this.registry);
    //      AnnotationConfigUtils.processCommonDefinitionAnnotations(abd);
    //      if (qualifiers != null) {
    //         for (Class<? extends Annotation> qualifier : qualifiers) {
    //            if (Primary.class.equals(qualifier)) {
    //               abd.setPrimary(true);
    //            }
    //            else if (Lazy.class.equals(qualifier)) {
    //               abd.setLazyInit(true);
    //            }
    //            else {
    //               abd.addQualifier(new AutowireCandidateQualifier(qualifier));
    //            }
    //         }
    //      }
    BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(abd, beanName);
    //      definitionHolder = AnnotationConfigUtils.applyScopedProxyMode(scopeMetadata, definitionHolder, this.registry);
    BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder, this.registry);
    eventListener.componentRegistered(new BeanComponentDefinition(abd, beanName));
}