I need to create one bean that will be execute before Spring Boot create my connection, so I have this 2 @Config to create my dbs
@Configuration
@EnableJpaRepositories(entityManagerFactoryRef = "dbregistroEntityManagerFactory",basePackages = {"br.com.lumera.repositories.registro"})
@EnableTransactionManagement
public class DbRegistroConfig {
@Bean(name = "dbRegistroDataSource")
@ConfigurationProperties(prefix = "datasource.dbregistro")
public DataSource secondaryDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name = "dbregistroEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean dbregistroEntityManagerFactory(
EntityManagerFactoryBuilder builder, @Qualifier("dbRegistroDataSource") DataSource dbRegistroDataSource) {
return builder
.dataSource(dbRegistroDataSource)
.packages("br.com.lumera.entity.registro")
.persistenceUnit("dbregistro")
.build();
}
@Bean(name = "dbregistroTransactionManager")
public JpaTransactionManager dbRegistroTransactionManager(@Qualifier("dbregistroEntityManagerFactory") final EntityManagerFactory factory)
{
return new JpaTransactionManager(factory);
}
}
AND
@Configuration
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory", basePackages = {"br.com.lumera.repositories.dnaso"})
@EnableTransactionManagement
public class DbDnasoConfig {
@Bean(name = "dataSource")
@Primary
@ConfigurationProperties(prefix = "datasource.dnaso")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "entityManagerFactory")
@Primary
public LocalContainerEntityManagerFactoryBean dbdnasoEntityManagerFactory(
EntityManagerFactoryBuilder builder, @Qualifier("dataSource") DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("br.com.lumera.entity.dnaso")
.persistenceUnit("dbdnaso")
.build();
}
@Bean(name = "transactionManager")
@Primary
public JpaTransactionManager dbRegistroTransactionManager(@Qualifier("entityManagerFactory") final EntityManagerFactory factory)
{
return new JpaTransactionManager(factory);
}
}
Then I create my class with autoconfigurate:
@Component
@AutoConfigureOrder
@ConditionalOnClass(DataSourceAutoConfiguration.class)
@ConfigurationProperties(prefix="dbdanso.flyway")
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
public class FlywayConf {
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Bean
public Boolean teste(){
Flyway flyway = new Flyway();
flyway.setDataSource("jdbc:postgresql://localhost:5432/portalservicos","postgres","dna44100");
flyway.setBaselineOnMigrate(true);
flyway.setLocations("classpath:db/migration/dbdnaso");
flyway.migrate();
return true;
}
}
but he execute after my DbRegistroConfig and DbDnasoConfig anyone can help me ?