Log a warning if repository autscan is set to default package
Fixes gh-572
This commit is contained in:
@@ -19,6 +19,8 @@ package org.springframework.boot.autoconfigure;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
@@ -29,6 +31,7 @@ import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Class for storing auto-configuration packages for reference later (e.g. by JPA entity
|
||||
@@ -39,6 +42,8 @@ import org.springframework.util.ClassUtils;
|
||||
*/
|
||||
public abstract class AutoConfigurationPackages {
|
||||
|
||||
private static Log logger = LogFactory.getLog(AutoConfigurationPackages.class);
|
||||
|
||||
private static final String BEAN = AutoConfigurationPackages.class.getName();
|
||||
|
||||
/**
|
||||
@@ -76,13 +81,24 @@ public abstract class AutoConfigurationPackages {
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
static class Registrar implements ImportBeanDefinitionRegistrar {
|
||||
|
||||
private static final String NO_SUCH_PACKAGE = "not.scanning.root";
|
||||
|
||||
@Override
|
||||
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
|
||||
BeanDefinitionRegistry registry) {
|
||||
set(registry,
|
||||
ClassUtils.getPackageName(importingClassMetadata.getClassName()));
|
||||
String packageName = ClassUtils.getPackageName(importingClassMetadata
|
||||
.getClassName());
|
||||
if (StringUtils.hasText(packageName)) {
|
||||
set(registry, packageName);
|
||||
logger.info("@EnableAutoConfiguration was declared on a class in the package '"
|
||||
+ packageName + "'. Automatic @Repository scanning is enabled.");
|
||||
}
|
||||
else {
|
||||
set(registry, NO_SUCH_PACKAGE);
|
||||
logger.warn("@EnableAutoConfiguration was declared on a class in the default package. "
|
||||
+ "Automatic @Repository scanning is not enabled.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user