Я пытаюсь использовать Spring Boot 2 + Spring Data + Custom Auto Configuration Classes
, но по какой-то причине не могу ввести DataSource
(предоставленный HikariCP) в третий класс.
@Configuration
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
public class InitialAutoConfiguration {
//Beans to load in theory first.
}
@Configuration
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
@AutoConfigureAfter(InitialAutoConfiguration.class)
@EntityScan(basePackageClasses = Asset.class)
@EnableJpaRepositories(basePackageClasses = AssetRepository.class,
repositoryBaseClass = BaseRepositoryImpl.class,
repositoryFactoryBeanClass = ExtendedJpaRepositoryFactoryBean.class)
public class JpaAutoConfiguration { //Load Jpa Classes
}
@Configuration
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
@AutoConfigureAfter(JpaAutoConfiguration.class)
@ComponentScan(basePackages = {"com.xxx"})
public class ServiceConfiguration {
@Inject
private DataSource dataSource; //Datasource is null
@Bean
public DbPropertySourcesPlaceholderConfigurer dbPropertySourcesPlaceholderConfigurer() {
DbPropertySourcesPlaceholderConfigurer placeholderConfigurer = new DbPropertySourcesPlaceholderConfigurer(dataSource);
placeholderConfigurer.setPlaceholderPrefix("%{");
placeholderConfigurer.setPlaceholderSuffix("}");
return placeholderConfigurer;
}
}
META-INF/spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xetec.autoconfigure.InitialAutoConfiguration,\
com.xetec.autoconfigure.JpaAutoConfiguration,\
com.xetec.autoconfigure.ServiceConfiguration
Похоже, что мои классы загружаются перед классами данных Spring (DataSourceAutoConfiguration.Hikari
).
Есть ли один способ сначала загрузить стартовые классы Spring Boot, а затем после моих пользовательских?
Спасибо