java类org.springframework.context.annotation.ScopeMetadataResolver的实例源码

ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests.java 文件源码 项目:spring4-understanding 阅读 60 收藏 0 点赞 0 评论 0
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;
}
ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests.java 文件源码 项目:class-guard 阅读 34 收藏 0 点赞 0 评论 0
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;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:lams 阅读 43 收藏 0 点赞 0 评论 0
/**
 * 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;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:lams 阅读 54 收藏 0 点赞 0 评论 0
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:spring4-understanding 阅读 45 收藏 0 点赞 0 评论 0
/**
 * 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;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:spring4-understanding 阅读 36 收藏 0 点赞 0 评论 0
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
AnnotationConfigEmbeddedWebApplicationContext.java 文件源码 项目:https-github.com-g0t4-jenkins2-course-spring-boot 阅读 55 收藏 0 点赞 0 评论 0
/**
 * 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);
}
AnnotationConfigEmbeddedWebApplicationContext.java 文件源码 项目:spring-boot-concourse 阅读 43 收藏 0 点赞 0 评论 0
/**
 * 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);
}
AnnotationConfigEmbeddedWebApplicationContext.java 文件源码 项目:contestparser 阅读 49 收藏 0 点赞 0 评论 0
/**
 * 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);
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:class-guard 阅读 35 收藏 0 点赞 0 评论 0
/**
 * 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;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:class-guard 阅读 36 收藏 0 点赞 0 评论 0
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:elasticactors 阅读 41 收藏 0 点赞 0 评论 0
/**
 * 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;
}
AnnotationConfigWebApplicationContext.java 文件源码 项目:elasticactors 阅读 45 收藏 0 点赞 0 评论 0
/**
 * Return the custom {@link ScopeMetadataResolver} for use with {@link AnnotatedBeanDefinitionReader}
 * and/or {@link ClassPathBeanDefinitionScanner}, if any.
 */
protected ScopeMetadataResolver getScopeMetadataResolver() {
    return this.scopeMetadataResolver;
}
AnnotationConfigApplicationContext.java 文件源码 项目:elasticactors 阅读 40 收藏 0 点赞 0 评论 0
/**
 * 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);
}


问题


面经


文章

微信
公众号

扫码关注公众号