List of usage examples for org.springframework.context.annotation ClassPathBeanDefinitionScanner scan
public int scan(String... basePackages)
From source file:org.opentides.bean.factory.support.BaseEntityRegistry.java
@Override public void afterPropertiesSet() throws Exception { if (packagesToScan == null) packagesToScan = new ArrayList<String>(); packagesToScan.add("org.opentides.bean"); baseEntities = new ArrayList<String>(); BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); ClassPathBeanDefinitionScanner s = new ClassPathBeanDefinitionScanner(registry); TypeFilter tf = new AssignableTypeFilter(BaseEntity.class); s.resetFilters(false);//from ww w. ja va 2s . c o m s.addIncludeFilter(tf); s.scan(packagesToScan.toArray(new String[packagesToScan.size()])); for (String name : registry.getBeanDefinitionNames()) { Class<?> clazz = Class.forName(registry.getBeanDefinition(name).getBeanClassName()); if (BaseEntity.class.isAssignableFrom(clazz)) baseEntities.add(registry.getBeanDefinition(name).getBeanClassName()); } }
From source file:org.wso2.msf4j.spring.MSF4JSpringApplication.java
/** * This will add a given service class to the running instnace with given base path. * * @param configurableApplicationContext ConfigurableApplicationContext of running app * @param serviceClass Service class//from ww w . j a v a 2s . c om * @param basePath Base path teh servuce get registered */ public void addService(ConfigurableApplicationContext configurableApplicationContext, Class serviceClass, String basePath) { ClassPathBeanDefinitionScanner classPathBeanDefinitionScanner = new ClassPathBeanDefinitionScanner( (BeanDefinitionRegistry) configurableApplicationContext); classPathBeanDefinitionScanner.scan(serviceClass.getPackage().getName()); SpringMicroservicesRunner springMicroservicesRunner = configurableApplicationContext .getBean(SpringMicroservicesRunner.class); springMicroservicesRunner.deploy(basePath, configurableApplicationContext.getBean(serviceClass)); }
From source file:com.codestd.spring.cxf.config.EndpointBeanProcessor.java
@Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (annotationPackage == null || annotationPackage.length() == 0) { return;//from ww w .ja va2 s .co m } if (beanFactory instanceof BeanDefinitionRegistry) { BeanDefinitionRegistry beanDefinitionRegistry = (BeanDefinitionRegistry) beanFactory; ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(beanDefinitionRegistry, true); AnnotationTypeFilter filter = new AnnotationTypeFilter(Endpoint.class); scanner.addIncludeFilter(filter); scanner.scan(annotationPackages); } }
From source file:org.elasticsoftware.elasticactors.spring.AnnotationConfigWebApplicationContext.java
/** * Register a {@link org.springframework.beans.factory.config.BeanDefinition} for * any classes specified by {@link #register(Class...)} and scan any packages * specified by {@link #scan(String...)}. * <p>For any values specified by {@link #setConfigLocation(String)} or * {@link #setConfigLocations(String[])}, attempt first to load each location as a * class, registering a {@code BeanDefinition} if class loading is successful, * and if class loading fails (i.e. a {@code ClassNotFoundException} is raised), * assume the value is a package and attempt to scan it for annotated classes. * <p>Enables the default set of annotation configuration post processors, such that * {@code @Autowired}, {@code @Required}, and associated annotations can be used. * <p>Configuration class bean definitions are registered with generated bean * definition names unless the {@code value} attribute is provided to the stereotype * annotation./*from www. ja v a 2s .com*/ * @see #register(Class...) * @see #scan(String...) * @see #setConfigLocation(String) * @see #setConfigLocations(String[]) * @see AnnotatedBeanDefinitionReader * @see ClassPathBeanDefinitionScanner */ @Override protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) { AnnotatedBeanDefinitionReader reader = new AnnotatedBeanDefinitionReader(beanFactory); reader.setEnvironment(this.getEnvironment()); ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(beanFactory); scanner.setEnvironment(this.getEnvironment()); BeanNameGenerator beanNameGenerator = getBeanNameGenerator(); ScopeMetadataResolver scopeMetadataResolver = getScopeMetadataResolver(); if (beanNameGenerator != null) { reader.setBeanNameGenerator(beanNameGenerator); scanner.setBeanNameGenerator(beanNameGenerator); beanFactory.registerSingleton(AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR, beanNameGenerator); } if (scopeMetadataResolver != null) { reader.setScopeMetadataResolver(scopeMetadataResolver); scanner.setScopeMetadataResolver(scopeMetadataResolver); } if (!this.annotatedClasses.isEmpty()) { if (logger.isInfoEnabled()) { logger.info("Registering annotated classes: [" + StringUtils.collectionToCommaDelimitedString(this.annotatedClasses) + "]"); } reader.register(this.annotatedClasses.toArray(new Class<?>[this.annotatedClasses.size()])); } if (!this.basePackages.isEmpty()) { if (logger.isInfoEnabled()) { logger.info("Scanning base packages: [" + StringUtils.collectionToCommaDelimitedString(this.basePackages) + "]"); } for (TypeFilter typeFilter : includeFilters) { scanner.addIncludeFilter(typeFilter); } scanner.scan(this.basePackages.toArray(new String[this.basePackages.size()])); } String[] configLocations = getConfigLocations(); if (configLocations != null) { for (String configLocation : configLocations) { try { Class<?> clazz = getClassLoader().loadClass(configLocation); if (logger.isInfoEnabled()) { logger.info("Successfully resolved class for [" + configLocation + "]"); } reader.register(clazz); } catch (ClassNotFoundException ex) { if (logger.isDebugEnabled()) { logger.debug("Could not load class for config location [" + configLocation + "] - trying package scan. " + ex); } int count = scanner.scan(configLocation); if (logger.isInfoEnabled()) { if (count == 0) { logger.info("No annotated classes found for specified class/package [" + configLocation + "]"); } else { logger.info( "Found " + count + " annotated classes in package [" + configLocation + "]"); } } } } } }