Spring Boot bağlantımı oluşturmadan önce yürütmek olacak bir fasulye oluşturmanız gerekir, bu yüzden bu 2 @Config benim lbs'nin oluşturmak zorundaOtomatik yapılandırma ile Bahar Boot
@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);
}
}
VE
@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);
}
}
@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;
}
}
ama benim DbRegistroConfig ve DbDnasoConfig a sonra yürütün: sonra autoconfigurate ile benim sınıf oluşturmak Nothing bana yardım edebilir?
Bu bağlantıya bakın: [Spring Boot otomatik yapılandırma sırası] (http://stackoverflow.com/questions/31692905/spring-boot-auto-configuration-order). Özellikle, "... @OutoConfigureOrder, oluşturdukları fasulyelerin somutlaştırılması değil, otomatik yapılandırmalar sipariş etmenin bir başka aracıdır". Ayrıca bkz. [Spring Boot Service Bean Oluşturma Sırası] (http://stackoverflow.com/questions/33874095/java-spring-boot-service-bean-creation-order) – paulsm4
Yapılandırma her zaman bileşenlerden önce gerçekleşmiyor mu? Yapılandırma fasulyesinden önce flywayConf fasulyesini yaratmaya çalışıyorsunuz. Bunu yapmak için, Yapılandırma ile işaretlenmiş bir sınıf içinde flywayConf bean yaratmanız ve oradan siparişi gerçekleştirmeniz gerektiğini düşünüyorum. – pczeus
temel olarak, DbRegistroConfig ve DbDnasoConfig'den önce FlaywayConf'u çalıştırmak istiyorsunuz. Bu doğru mu? – Hareesh