Browse Source

Merge branch '2.7.x'

pull/29112/head
Stephane Nicoll 4 years ago
parent
commit
c975fbc286
  1. 2
      spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AnnotationDependsOnDatabaseInitializationDetector.java
  2. 20
      spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/AbstractDataSourceInitializerDependencyConfigurationTests.java

2
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AnnotationDependsOnDatabaseInitializationDetector.java

@ -33,7 +33,7 @@ class AnnotationDependsOnDatabaseInitializationDetector implements DependsOnData @@ -33,7 +33,7 @@ class AnnotationDependsOnDatabaseInitializationDetector implements DependsOnData
public Set<String> detect(ConfigurableListableBeanFactory beanFactory) {
Set<String> dependentBeans = new HashSet<>();
for (String beanName : beanFactory.getBeanDefinitionNames()) {
if (beanFactory.findAnnotationOnBean(beanName, DependsOnDatabaseInitialization.class) != null) {
if (beanFactory.findAnnotationOnBean(beanName, DependsOnDatabaseInitialization.class, false) != null) {
dependentBeans.add(beanName);
}
}

20
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/AbstractDataSourceInitializerDependencyConfigurationTests.java

@ -40,11 +40,13 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -40,11 +40,13 @@ import static org.assertj.core.api.Assertions.assertThat;
class AbstractDataSourceInitializerDependencyConfigurationTests {
@Test
void beanThatDependsOnDatabaseInitializationDependsOnAbstractDataSourceInitializerBeans() {
void beansThatDependOnDatabaseInitializationDependOnAbstractDataSourceInitializerBeans() {
try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
TestConfiguration.class)) {
assertThat(context.getBeanFactory().getBeanDefinition("dependsOnDataSourceInitialization").getDependsOn())
.contains("initializer");
assertThat(context.getBeanFactory().getBeanDefinition("factoryMethodDependsOnDatabaseInitialization")
.getDependsOn()).contains("initializer");
assertThat(context.getBeanFactory().getBeanDefinition("beanClassDependsOnDatabaseInitialization")
.getDependsOn()).contains("initializer");
}
}
@ -59,10 +61,15 @@ class AbstractDataSourceInitializerDependencyConfigurationTests { @@ -59,10 +61,15 @@ class AbstractDataSourceInitializerDependencyConfigurationTests {
@Bean
@DependsOnDatabaseInitialization
String dependsOnDataSourceInitialization() {
String factoryMethodDependsOnDatabaseInitialization() {
return "test";
}
@Bean
DatabaseInitializationDependent beanClassDependsOnDatabaseInitialization() {
return new DatabaseInitializationDependent();
}
@Bean
AbstractDataSourceInitializer initializer(DataSource dataSource, ResourceLoader resourceLoader) {
return new AbstractDataSourceInitializer(dataSource, resourceLoader) {
@ -82,4 +89,9 @@ class AbstractDataSourceInitializerDependencyConfigurationTests { @@ -82,4 +89,9 @@ class AbstractDataSourceInitializerDependencyConfigurationTests {
}
@DependsOnDatabaseInitialization
static class DatabaseInitializationDependent {
}
}

Loading…
Cancel
Save