Java 类org.springframework.context.annotation.ScopeMetadataResolver 实例源码

项目:spring4-understanding    文件:ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests.java   
private ApplicationContext createContext(final ScopedProxyMode scopedProxyMode) {
    GenericWebApplicationContext context = new GenericWebApplicationContext();
    ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context);
    scanner.setIncludeAnnotationConfig(false);
    scanner.setScopeMetadataResolver(new ScopeMetadataResolver() {
        @Override
        public ScopeMetadata resolveScopeMetadata(BeanDefinition definition) {
            ScopeMetadata metadata = new ScopeMetadata();
            if (definition instanceof AnnotatedBeanDefinition) {
                AnnotatedBeanDefinition annDef = (AnnotatedBeanDefinition) definition;
                for (String type : annDef.getMetadata().getAnnotationTypes()) {
                    if (type.equals(javax.inject.Singleton.class.getName())) {
                        metadata.setScopeName(BeanDefinition.SCOPE_SINGLETON);
                        break;
                    }
                    else if (annDef.getMetadata().getMetaAnnotationTypes(type).contains(javax.inject.Scope.class.getName())) {
                        metadata.setScopeName(type.substring(type.length() - 13, type.length() - 6).toLowerCase());
                        metadata.setScopedProxyMode(scopedProxyMode);
                        break;
                    }
                    else if (type.startsWith("javax.inject")) {
                        metadata.setScopeName(BeanDefinition.SCOPE_PROTOTYPE);
                    }
                }
            }
            return metadata;
        }
    });

    // Scan twice in order to find errors in the bean definition compatibility check.
    scanner.scan(getClass().getPackage().getName());
    scanner.scan(getClass().getPackage().getName());

    context.registerAlias("classPathBeanDefinitionScannerJsr330ScopeIntegrationTests.SessionScopedTestBean", "session");
    context.refresh();
    return context;
}
项目:class-guard    文件:ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests.java   
private ApplicationContext createContext(final ScopedProxyMode scopedProxyMode) {
    GenericWebApplicationContext context = new GenericWebApplicationContext();
    ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context);
    scanner.setIncludeAnnotationConfig(false);
    scanner.setScopeMetadataResolver(new ScopeMetadataResolver() {
        @Override
        public ScopeMetadata resolveScopeMetadata(BeanDefinition definition) {
            ScopeMetadata metadata = new ScopeMetadata();
            if (definition instanceof AnnotatedBeanDefinition) {
                AnnotatedBeanDefinition annDef = (AnnotatedBeanDefinition) definition;
                for (String type : annDef.getMetadata().getAnnotationTypes()) {
                    if (type.equals(javax.inject.Singleton.class.getName())) {
                        metadata.setScopeName(BeanDefinition.SCOPE_SINGLETON);
                        break;
                    }
                    else if (annDef.getMetadata().getMetaAnnotationTypes(type).contains(javax.inject.Scope.class.getName())) {
                        metadata.setScopeName(type.substring(type.length() - 13, type.length() - 6).toLowerCase());
                        metadata.setScopedProxyMode(scopedProxyMode);
                        break;
                    }
                    else if (type.startsWith("javax.inject")) {
                        metadata.setScopeName(BeanDefinition.SCOPE_PROTOTYPE);
                    }
                }
            }
            return metadata;
        }
    });

    // Scan twice in order to find errors in the bean definition compatibility check.
    scanner.scan(getClass().getPackage().getName());
    scanner.scan(getClass().getPackage().getName());

    context.registerAlias("classPathBeanDefinitionScannerJsr330ScopeIntegrationTests.SessionScopedTestBean", "session");
    context.refresh();
    return context;
}
项目:lams    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Set a custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}.
 * <p>Default is an {@link org.springframework.context.annotation.AnnotationScopeMetadataResolver}.
 * @see AnnotatedBeanDefinitionReader#setScopeMetadataResolver
 * @see ClassPathBeanDefinitionScanner#setScopeMetadataResolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.scopeMetadataResolver = scopeMetadataResolver;
}
项目:lams    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
项目:spring4-understanding    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Set a custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}.
 * <p>Default is an {@link org.springframework.context.annotation.AnnotationScopeMetadataResolver}.
 * @see AnnotatedBeanDefinitionReader#setScopeMetadataResolver
 * @see ClassPathBeanDefinitionScanner#setScopeMetadataResolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.scopeMetadataResolver = scopeMetadataResolver;
}
项目:spring4-understanding    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:AnnotationConfigEmbeddedWebApplicationContext.java   
/**
 * Set the {@link ScopeMetadataResolver} to use for detected bean classes.
 * <p>
 * The default is an {@link AnnotationScopeMetadataResolver}.
 * <p>
 * Any call to this method must occur prior to calls to {@link #register(Class...)}
 * and/or {@link #scan(String...)}.
 * @param scopeMetadataResolver the scope metadata resolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.reader.setScopeMetadataResolver(scopeMetadataResolver);
    this.scanner.setScopeMetadataResolver(scopeMetadataResolver);
}
项目:spring-boot-concourse    文件:AnnotationConfigEmbeddedWebApplicationContext.java   
/**
 * Set the {@link ScopeMetadataResolver} to use for detected bean classes.
 * <p>
 * The default is an {@link AnnotationScopeMetadataResolver}.
 * <p>
 * Any call to this method must occur prior to calls to {@link #register(Class...)}
 * and/or {@link #scan(String...)}.
 * @param scopeMetadataResolver the scope metadata resolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.reader.setScopeMetadataResolver(scopeMetadataResolver);
    this.scanner.setScopeMetadataResolver(scopeMetadataResolver);
}
项目:contestparser    文件:AnnotationConfigEmbeddedWebApplicationContext.java   
/**
 * Set the {@link ScopeMetadataResolver} to use for detected bean classes.
 * <p>
 * The default is an {@link AnnotationScopeMetadataResolver}.
 * <p>
 * Any call to this method must occur prior to calls to {@link #register(Class...)}
 * and/or {@link #scan(String...)}.
 * @param scopeMetadataResolver the scope metadata resolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.reader.setScopeMetadataResolver(scopeMetadataResolver);
    this.scanner.setScopeMetadataResolver(scopeMetadataResolver);
}
项目:class-guard    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Set a custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}.
 * <p>Default is an {@link org.springframework.context.annotation.AnnotationScopeMetadataResolver}.
 * @see AnnotatedBeanDefinitionReader#setScopeMetadataResolver
 * @see ClassPathBeanDefinitionScanner#setScopeMetadataResolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.scopeMetadataResolver = scopeMetadataResolver;
}
项目:class-guard    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
项目:elasticactors    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Set a custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}.
 * <p>Default is an {@link org.springframework.context.annotation.AnnotationScopeMetadataResolver}.
 * @see AnnotatedBeanDefinitionReader#setScopeMetadataResolver
 * @see ClassPathBeanDefinitionScanner#setScopeMetadataResolver
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.scopeMetadataResolver = scopeMetadataResolver;
}
项目:elasticactors    文件:AnnotationConfigWebApplicationContext.java   
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
项目:elasticactors    文件:AnnotationConfigApplicationContext.java   
/**
 * Set the {@link org.springframework.context.annotation.ScopeMetadataResolver} to use for detected bean classes.
 * <p>The default is an {@link org.springframework.context.annotation.AnnotationScopeMetadataResolver}.
 * <p>Any call to this method must occur prior to calls to {@link #register(Class...)}
 * and/or {@link #scan(String...)}.
 */
public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) {
    this.reader.setScopeMetadataResolver(scopeMetadataResolver);
    this.scanner.setScopeMetadataResolver(scopeMetadataResolver);
}