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

项目:morphia-spring-boot-starter    文件:MorphiaUtils.java   
/**
 * Return root package of spring boot application.
 *
 * @param applicationContext
 * @return list of packages
 */
public static List<String> getApplicationPackageName(final ApplicationContext applicationContext) {

    Set<String> candidateClasses = new HashSet<>();
    candidateClasses.addAll(Arrays.asList(applicationContext.getBeanNamesForAnnotation(SpringBootApplication.class)));
    candidateClasses.addAll(Arrays.asList(applicationContext.getBeanNamesForAnnotation(EnableAutoConfiguration.class)));
    candidateClasses.addAll(Arrays.asList(applicationContext.getBeanNamesForAnnotation(ComponentScan.class)));

    if (candidateClasses.isEmpty()) {
        throw new RuntimeException("Is mandatory for the starter have @SpringBootApplication, @EnableAutoConfiguration or @ComponentScan annotation");
    } else {
        return candidateClasses.parallelStream()
                .map(candidateClazz -> applicationContext.getBean(candidateClazz).getClass().getPackage().getName())
                .distinct()
                .collect(Collectors.toList());
    }

}
项目:spring-web-api-test-stubber    文件:SpringBootRestControllerTesterStubGenerator.java   
private TypeSpec buildTypeSpec(List<MethodSpec> methodSpecs, List<FieldSpec> fieldSpecs, MethodSpec setUp) {

        return TypeSpec.classBuilder(this.restControllerModel.getSimpleClassName())
                .addAnnotation(Transactional.class)
                .addAnnotation(
                        AnnotationSpec.builder(RunWith.class)
                                      .addMember("value", "$T.class", SpringJUnit4ClassRunner.class)
                                      .build()
                )
                .addAnnotation(
                        AnnotationSpec.builder(ComponentScan.class)
                                      .addMember("basePackages", "{$S, $S}", "YOUR_DTOs_PACKAGE", "YOUR_SERVICEs_PACKAGE")
                                      .build()
                )
                .addAnnotation(SpringBootTest.class)
                .addModifiers(Modifier.PUBLIC)
                .addFields(fieldSpecs)
                .addMethod(setUp)
                .addMethods(methodSpecs)
                .build();
    }
项目:cloudstack    文件:IntegrationTestConfiguration.java   
public static boolean includedInBasePackageClasses(String clazzName, ComponentScan cs) {
    Class<?> clazzToCheck;
    try {
        clazzToCheck = Class.forName(clazzName);
    } catch (ClassNotFoundException e) {
        System.out.println("Unable to find " + clazzName);
        return false;
    }
    Class<?>[] clazzes = cs.basePackageClasses();
    for (Class<?> clazz : clazzes) {
        if (clazzToCheck.isAssignableFrom(clazz)) {
            return true;
        }
    }
    return false;
}
项目:initializr    文件:ProjectGeneratorTests.java   
@Test
public void springBootUseSpringBootApplicationGroovy() {
    ProjectRequest request = createProjectRequest("web");
    request.setLanguage("groovy");
    request.setBootVersion("1.2.0.RC1");
    request.setName("MyDemo");
    request.setPackageName("foo");
    generateProject(request)
            .sourceCodeAssert("src/main/groovy/foo/MyDemoApplication.groovy")
            .hasImports(SpringBootApplication.class.getName())
            .doesNotHaveImports(EnableAutoConfiguration.class.getName(),
                    ComponentScan.class.getName(), Configuration.class.getName())
            .contains("@SpringBootApplication").doesNotContain(
                    "@EnableAutoConfiguration", "@Configuration", "@ComponentScan");
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:ConfigurationWarningsApplicationContextInitializer.java   
private void addComponentScanningPackages(Set<String> packages,
        AnnotationMetadata metadata) {
    AnnotationAttributes attributes = AnnotationAttributes.fromMap(metadata
            .getAnnotationAttributes(ComponentScan.class.getName(), true));
    if (attributes != null) {
        addPackages(packages, attributes.getStringArray("value"));
        addPackages(packages, attributes.getStringArray("basePackages"));
        addClasses(packages, attributes.getStringArray("basePackageClasses"));
        if (packages.isEmpty()) {
            packages.add(ClassUtils.getPackageName(metadata.getClassName()));
        }
    }
}
项目:spring-boot-concourse    文件:ConfigurationWarningsApplicationContextInitializer.java   
private void addComponentScanningPackages(Set<String> packages,
        AnnotationMetadata metadata) {
    AnnotationAttributes attributes = AnnotationAttributes.fromMap(metadata
            .getAnnotationAttributes(ComponentScan.class.getName(), true));
    if (attributes != null) {
        addPackages(packages, attributes.getStringArray("value"));
        addPackages(packages, attributes.getStringArray("basePackages"));
        addClasses(packages, attributes.getStringArray("basePackageClasses"));
        if (packages.isEmpty()) {
            packages.add(ClassUtils.getPackageName(metadata.getClassName()));
        }
    }
}
项目:spring-boot-starter    文件:MybatisTypeExcludeFilter.java   
@Override
protected ComponentScan.Filter[] getFilters(FilterType type) {
  switch (type) {
    case INCLUDE:
      return this.annotation.includeFilters();
    case EXCLUDE:
      return this.annotation.excludeFilters();
  }
  throw new IllegalStateException("Unsupported type " + type);
}
项目:contestparser    文件:ConfigurationWarningsApplicationContextInitializer.java   
private boolean isScanningDefaultPackage(AnnotationMetadata metadata) {
    AnnotationAttributes attributes = AnnotationAttributes.fromMap(metadata
            .getAnnotationAttributes(ComponentScan.class.getName(), true));
    if (attributes != null && hasNoScanPackageSpecified(attributes)) {
        if (isInDefaultPackage(metadata.getClassName())) {
            return true;
        }
    }
    return false;
}
项目:spring-boot-javafx-sample    文件:SpringJavaFXBuilderFactory.java   
@Override
public void afterPropertiesSet() throws Exception {
    packages = applicationContext
        .getBeansWithAnnotation(ComponentScan.class).values()
        .stream()
        .map(obj -> obj.getClass().getPackage().getName())
        .collect(Collectors.toList());
}
项目:initializr    文件:ProjectGeneratorTests.java   
@Test
public void springBoot11UseEnableAutoConfigurationJava() {
    ProjectRequest request = createProjectRequest("web");
    request.setBootVersion("1.1.9.RELEASE");
    request.setName("MyDemo");
    request.setPackageName("foo");
    generateProject(request)
            .sourceCodeAssert("src/main/java/foo/MyDemoApplication.java")
            .hasImports(EnableAutoConfiguration.class.getName(),
                    ComponentScan.class.getName(), Configuration.class.getName())
            .doesNotHaveImports(SpringBootApplication.class.getName())
            .contains("@EnableAutoConfiguration", "@Configuration", "@ComponentScan")
            .doesNotContain("@SpringBootApplication");
}
项目:initializr    文件:ProjectGeneratorTests.java   
@Test
public void springBootUseSpringBootApplicationJava() {
    ProjectRequest request = createProjectRequest("web");
    request.setBootVersion("1.2.0.RC1");
    request.setName("MyDemo");
    request.setPackageName("foo");
    generateProject(request)
            .sourceCodeAssert("src/main/java/foo/MyDemoApplication.java")
            .hasImports(SpringBootApplication.class.getName())
            .doesNotHaveImports(EnableAutoConfiguration.class.getName(),
                    ComponentScan.class.getName(), Configuration.class.getName())
            .contains("@SpringBootApplication").doesNotContain(
                    "@EnableAutoConfiguration", "@Configuration", "@ComponentScan");
}
项目:initializr    文件:ProjectGeneratorTests.java   
@Test
public void springBoot11UseEnableAutoConfigurationGroovy() {
    ProjectRequest request = createProjectRequest("web");
    request.setLanguage("groovy");
    request.setBootVersion("1.1.9.RELEASE");
    request.setName("MyDemo");
    request.setPackageName("foo");
    generateProject(request)
            .sourceCodeAssert("src/main/groovy/foo/MyDemoApplication.groovy")
            .hasImports(EnableAutoConfiguration.class.getName(),
                    ComponentScan.class.getName(), Configuration.class.getName())
            .doesNotHaveImports(SpringBootApplication.class.getName())
            .contains("@EnableAutoConfiguration", "@Configuration", "@ComponentScan")
            .doesNotContain("@SpringBootApplication");
}
项目:initializr    文件:ProjectGeneratorTests.java   
@Test
public void springBoot11UseEnableAutoConfigurationKotlin() {
    ProjectRequest request = createProjectRequest("web");
    request.setLanguage("kotlin");
    request.setBootVersion("1.1.9.RELEASE");
    request.setName("MyDemo");
    request.setPackageName("foo");
    generateProject(request)
            .sourceCodeAssert("src/main/kotlin/foo/MyDemoApplication.kt")
            .hasImports(EnableAutoConfiguration.class.getName(),
                    ComponentScan.class.getName(), Configuration.class.getName())
            .doesNotHaveImports(SpringBootApplication.class.getName())
            .contains("@EnableAutoConfiguration", "@Configuration", "@ComponentScan")
            .doesNotContain("@SpringBootApplication");
}
项目:initializr    文件:ProjectGeneratorTests.java   
@Test
public void springBootUseSpringBootApplicationKotlin() {
    ProjectRequest request = createProjectRequest("web");
    request.setLanguage("kotlin");
    request.setBootVersion("1.2.0.RC1");
    request.setName("MyDemo");
    request.setPackageName("foo");
    generateProject(request)
            .sourceCodeAssert("src/main/kotlin/foo/MyDemoApplication.kt")
            .hasImports(SpringBootApplication.class.getName())
            .doesNotHaveImports(EnableAutoConfiguration.class.getName(),
                    ComponentScan.class.getName(), Configuration.class.getName())
            .contains("@SpringBootApplication").doesNotContain(
                    "@EnableAutoConfiguration", "@Configuration", "@ComponentScan");
}
项目:butterfly    文件:AnnotatedWithTest.java   
@Test
public void simpleNameTest() throws ParseException {
    AnnotatedWith annotatedWith = new AnnotatedWith(ComponentScan.class);
    Assert.assertTrue(annotatedWith.evaluate(compilationUnit));
}
项目:cosmic    文件:SpringUtils.java   
/**
 * This method allows you to use @ComponentScan for your unit testing but
 * it limits the scope of the classes found to the class specified in
 * the @ComponentScan annotation.
 * <p>
 * Without using this method, the default behavior of @ComponentScan is
 * to actually scan in the package of the class specified rather than
 * only the class. This can cause extra classes to be loaded which causes
 * the classes these extra classes depend on to be loaded. The end effect
 * is often most of the project gets loaded.
 * <p>
 * In order to use this method properly, you must do the following: <li>
 * - Specify @ComponentScan with basePackageClasses, includeFilters, and
 * useDefaultFilters=true.  See the following example.
 * <p>
 * <pre>
 *     @ComponentScan(basePackageClasses={AffinityGroupServiceImpl.class, EventUtils.class},
 *     includeFilters={@Filter(value=TestConfiguration.Library.class, type=FilterType.CUSTOM)},
 *     useDefaultFilters=false)
 * </pre>
 * <p>
 * - Create a Library class and use that to call this method.  See the
 * following example.  The Library class you define here is the Library
 * class being added in the filter above.
 * <p>
 * <pre>
 * public static class Library implements TypeFilter {
 *      @Override
 *      public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
 *          ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
 *          return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
 *      }
 * }
 * </pre>
 *
 * @param clazzName name of the class that should be included in the Spring components
 * @param cs        ComponentScan annotation that was declared on the configuration
 * @return
 */
public static boolean includedInBasePackageClasses(final String clazzName, final ComponentScan cs) {
    final Class<?> clazzToCheck;
    try {
        clazzToCheck = Class.forName(clazzName);
    } catch (final ClassNotFoundException e) {
        throw new CloudRuntimeException("Unable to find " + clazzName);
    }
    final Class<?>[] clazzes = cs.basePackageClasses();
    for (final Class<?> clazz : clazzes) {
        if (clazzToCheck.isAssignableFrom(clazz)) {
            return true;
        }
    }
    return false;
}
项目:cosmic    文件:VMSnapshotStrategyTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:FirstFitPlannerTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:SecurityGroupManagerTestConfiguration.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = SecurityGroupManagerTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:AffinityGroupServiceImplTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:AffinityApiUnitTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:TemplateManagerImplTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:NetworkACLManagerTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = NetworkACLTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:VpcTestConfiguration.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = VpcTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:NetworkACLServiceTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = NetworkACLTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:AclOnPrivateGwTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:SnapshotDaoTestConfiguration.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = SnapshotDaoTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:StoragePoolDaoTestConfiguration.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = StoragePoolDaoTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:ChildTestConfiguration.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) {
    mdr.getClassMetadata().getClassName();
    final ComponentScan cs = ChildTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:DedicatedApiUnitTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cosmic    文件:ImplicitPlannerTest.java   
@Override
public boolean match(final MetadataReader mdr, final MetadataReaderFactory arg1) throws IOException {
    final ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:SpringUtils.java   
/**
 * This method allows you to use @ComponentScan for your unit testing but
 * it limits the scope of the classes found to the class specified in
 * the @ComponentScan annotation.
 *
 * Without using this method, the default behavior of @ComponentScan is
 * to actually scan in the package of the class specified rather than
 * only the class. This can cause extra classes to be loaded which causes
 * the classes these extra classes depend on to be loaded. The end effect
 * is often most of the project gets loaded.
 *
 * In order to use this method properly, you must do the following: <li>
 *   - Specify @ComponentScan with basePackageClasses, includeFilters, and
 *     useDefaultFilters=true.  See the following example.
 *
 * <pre>
 *     @ComponentScan(basePackageClasses={AffinityGroupServiceImpl.class, EventUtils.class},
 *     includeFilters={@Filter(value=TestConfiguration.Library.class, type=FilterType.CUSTOM)},
 *     useDefaultFilters=false)
 * </pre>
 *
 *   - Create a Library class and use that to call this method.  See the
 *     following example.  The Library class you define here is the Library
 *     class being added in the filter above.
 *
 * <pre>
 * public static class Library implements TypeFilter {
 *      @Override
 *      public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
 *          ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
 *          return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
 *      }
 * }
 * </pre>
 *
 * @param clazzName name of the class that should be included in the Spring components
 * @param cs ComponentScan annotation that was declared on the configuration
 *
 * @return
 */
public static boolean includedInBasePackageClasses(String clazzName, ComponentScan cs) {
    Class<?> clazzToCheck;
    try {
        clazzToCheck = Class.forName(clazzName);
    } catch (ClassNotFoundException e) {
        throw new CloudRuntimeException("Unable to find " + clazzName);
    }
    Class<?>[] clazzes = cs.basePackageClasses();
    for (Class<?> clazz : clazzes) {
        if (clazzToCheck.isAssignableFrom(clazz)) {
            return true;
        }
    }
    return false;
}
项目:cloudstack    文件:StorageAllocatorTestConfiguration.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    ComponentScan cs = StorageAllocatorTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:ChildTestConfiguration.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    ComponentScan cs = ChildTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:VMSnapshotStrategyTest.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:UsageManagerTestConfiguration.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    ComponentScan cs = UsageManagerTestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:IAMApiServiceTest.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:IAMServiceUnitTest.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:ApplicationLoadBalancerTest.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    mdr.getClassMetadata().getClassName();
    ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}
项目:cloudstack    文件:AffinityGroupServiceImplTest.java   
@Override
public boolean match(MetadataReader mdr, MetadataReaderFactory arg1) throws IOException {
    ComponentScan cs = TestConfiguration.class.getAnnotation(ComponentScan.class);
    return SpringUtils.includedInBasePackageClasses(mdr.getClassMetadata().getClassName(), cs);
}