@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { logger.debug("Searching for mappers annotated with @Mapper"); ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry); scanner.setMapperProperties(environment); try { if (this.resourceLoader != null) { scanner.setResourceLoader(this.resourceLoader); } List<String> packages = AutoConfigurationPackages.get(this.beanFactory); if (logger.isDebugEnabled()) { for (String pkg : packages) { logger.debug("Using auto-configuration base package '{}'", pkg); } } BaseProperties properties = SpringBootBindUtil.bind(environment, BaseProperties.class, BaseProperties.MYBATIS_PREFIX); if(properties != null && properties.getBasePackages() != null && properties.getBasePackages().length > 0){ packages.addAll(Arrays.asList(properties.getBasePackages())); } else { //设置了包名的情况下,不需要指定该注解 scanner.setAnnotationClass(Mapper.class); } scanner.registerFilters(); scanner.doScan(StringUtils.toStringArray(packages)); } catch (IllegalStateException ex) { logger.debug("Could not determine auto-configuration package, automatic mapper scanning disabled.", ex); } }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { if (!AutoConfigurationPackages.has(this.beanFactory)) { logger.debug("Could not determine auto-configuration package, automatic mapper scanning disabled."); return; } logger.debug("Searching for mappers annotated with @Mapper"); List<String> packages = AutoConfigurationPackages.get(this.beanFactory); if (logger.isDebugEnabled()) { packages.forEach(pkg -> logger.debug("Using auto-configuration base package '{}'", pkg)); } ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry); if (this.resourceLoader != null) { scanner.setResourceLoader(this.resourceLoader); } scanner.setAnnotationClass(Mapper.class); scanner.registerFilters(); scanner.doScan(StringUtils.toStringArray(packages)); }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { Map<String, Object> attributes = importingClassMetadata.getAnnotationAttributes("org.axonframework.springboot.util.RegisterDefaultEntities"); String[] packages = (String[]) attributes.get("packages"); AutoConfigurationPackages.register(registry, packages); } }
@Override public void registerBeanDefinitions( AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry ) { if ( !registry.containsBeanDefinition( BEAN ) ) { AutoConfigurationPackages.register( registry ); } BeanDefinition beanDefinition = registry.getBeanDefinition( BEAN ); ConstructorArgumentValues constructorArguments = beanDefinition.getConstructorArgumentValues(); String[] existing = (String[]) constructorArguments.getIndexedArgumentValue( 0, String[].class ).getValue(); if ( existing.length > 0 ) { applicationModulePackage = existing[0] + ".application"; LOG.info( "Disabling @AutoConfigurationPackage on the root package - Across applications support only the application module" ); constructorArguments.addIndexedArgumentValue( 0, new String[0] ); AcrossDynamicModulesConfiguration.verifyNoConflictingComponentScans( importingClassMetadata, existing[0] ); } if ( registry instanceof BeanFactory ) { LOG.trace( "Eager instantiation of AutoConfigurationPackages singleton" ); AutoConfigurationPackages.get( (BeanFactory) registry ); } SingletonBeanRegistry singletonBeanRegistry = (SingletonBeanRegistry) registry; if ( !singletonBeanRegistry.containsSingleton( ApplicationAutoConfigurationPackage.class.getName() ) ) { singletonBeanRegistry.registerSingleton( ApplicationAutoConfigurationPackage.class.getName(), this ); } } }
@Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.packages = AutoConfigurationPackages.get(beanFactory); }
private List<String> getDefaultPackages() { List<String> packagesList = Collections.emptyList(); if (appContext .getBeanNamesForType(VaadinScanPackages.class).length > 0) { VaadinScanPackages packages = appContext .getBean(VaadinScanPackages.class); packagesList = packages.getScanPackages(); } if (!packagesList.isEmpty()) { LoggerFactory.getLogger(VaadinServletContextInitializer.class) .trace("Using explicitly configured packages for scan Vaadin types at startup {}", packagesList); } else if (AutoConfigurationPackages.has(appContext)) { packagesList = AutoConfigurationPackages.get(appContext); } return packagesList; }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { AutoConfigurationPackages.register(registry, EventPublication.class.getPackage().getName()); } }
private List<String> getSpringApplicationPackages(BeanFactory beanFactory) { return AutoConfigurationPackages.get(beanFactory); }
private List<String> getDefaultPackages() { List<String> packagesList = Collections.emptyList(); if (appContext .getBeanNamesForType(VaadinScanPackages.class).length > 0) { VaadinScanPackages packages = appContext .getBean(VaadinScanPackages.class); packagesList = packages.getScanPackages(); } if (!packagesList.isEmpty()) { LoggerFactory.getLogger(VaadinServletContextInitializer.class) .trace("Using explicitly configured packages for scan Vaadin types at startup {}", packagesList); } else if (AutoConfigurationPackages.has(appContext)) { packagesList = AutoConfigurationPackages.get(appContext); } return packagesList; }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { Map<String, Object> attributes = importingClassMetadata.getAnnotationAttributes("org.axonframework.springboot.util.RegisterDefaultEntities"); String[] packages = (String[]) attributes.get("packages"); AutoConfigurationPackages.register(registry, packages); } }
private List<String> getSpringApplicationPackages(BeanFactory beanFactory) { return AutoConfigurationPackages.get(beanFactory); }
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { if (!AutoConfigurationPackages.has(this.beanFactory)) { logger.debug("Could not determine auto-configuration package, automatic mapper scanning disabled."); return; } logger.debug("Searching for mappers annotated with @Mapper"); List<String> packages = AutoConfigurationPackages.get(this.beanFactory); if (logger.isDebugEnabled()) { packages.forEach(pkg -> logger.debug("Using auto-configuration base package '{}'", pkg)); } ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry); if (this.resourceLoader != null) { scanner.setResourceLoader(this.resourceLoader); } scanner.setAnnotationClass(Mapper.class); scanner.registerFilters(); scanner.doScan(StringUtils.toStringArray(packages)); }
@Override public void registerBeanDefinitions( AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry ) { val autoConfigurationPackage = ( (HierarchicalBeanFactory) registry ).getParentBeanFactory().getBean( ApplicationAutoConfigurationPackage.class ); LOG.info( "Registering AutoConfigurationPackage {}", autoConfigurationPackage.getApplicationModulePackage() ); AutoConfigurationPackages.register( registry, autoConfigurationPackage.getApplicationModulePackage() ); } }
private static Collection<String> getMappingBasePackages(BeanFactory beanFactory) { try { return AutoConfigurationPackages.get(beanFactory); } catch (IllegalStateException ex) { // no auto-configuration package registered yet return Collections.emptyList(); } }
@Override public void initialize(GenericApplicationContext context) { DefaultListableBeanFactory beanFactory = context.getDefaultListableBeanFactory(); if (beanFactory != null) { if (!(beanFactory .getDependencyComparator() instanceof AnnotationAwareOrderComparator)) { beanFactory .setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE); } // N.B. ContextAnnotationAutowireCandidateResolver is normal, but that's more expensive // (checks for @Lazy) if (!(beanFactory .getAutowireCandidateResolver() instanceof QualifierAnnotationAutowireCandidateResolver)) { beanFactory.setAutowireCandidateResolver( new QualifierAnnotationAutowireCandidateResolver()); } beanFactory.addBeanPostProcessor( beanFactory.createBean(AutowiredAnnotationBeanPostProcessor.class)); } AutoConfigurationPackages.register(context, ClassUtils.getPackageName(getClass())); context.registerBean(ConfigurationPropertiesBindingPostProcessor.class); context.registerBean(ConfigurationBeanFactoryMetadata.BEAN_NAME, ConfigurationBeanFactoryMetadata.class); context.addBeanFactoryPostProcessor(new AutoConfigurations(context)); context.registerBean(AutoApplication.class, () -> this); }
private static Collection<String> getMappingBasePackages(BeanFactory beanFactory) { try { return AutoConfigurationPackages.get(beanFactory); } catch (IllegalStateException ex) { // no auto-configuration package registered yet return Collections.emptyList(); } }
@Override public Iterable<String> getBasePackages() { return AutoConfigurationPackages.get(getBeanFactory()); } };
/** * 获取被自动扫描的包路径 */ public static String[] getBasePackages() { List<String> basePackages = AutoConfigurationPackages.get(getApplicationContext()); return basePackages.toArray(new String[basePackages.size()]); }
protected String[] getBasePackages() { return AutoConfigurationPackages.get(this.getBeanFactory()) .toArray(new String[] {}); }