0
私はSpringブートとSpringデータを使用していますが、主にMySQLデータソースを使用しますが、接続に失敗した場合はH2データソースに移動します。春のデータ - プライマリデータソースに失敗した場合、2番目のデータソースは表示されません
これまでのところ、設定で@Primaryを変更しただけですが、@PrimaryをMySQL(メインデータソース)に入れ、自分のPCにMySQLサーバーを停止すると、もう一方のBeanは来ませんup ...私は何が必要ですか?
application.yml:
# Main properties
spring:
application:
name: app
jpa:
database: default
show-sql: false
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: false
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
# Main database: MySQL
main.datasource:
url: jdbc:mysql://localhost:3306/app?useSSL=false
driver-class-name: com.mysql.jdbc.Driver
username: sa
password: sa
# Backup database: H2
backup.datasource:
url: jdbc:h2:${project.directory}/app;DB_CLOSE_ON_EXIT=FALSE
driver-class-name: org.h2.Driver
username: sa
password: sa
メインデータソース
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories("org.app")
@EntityScan("org.app")
public class MainDataSourceConfig {
@Primary
@Bean(name = "mainDataSource")
@ConfigurationProperties(prefix = "main.datasource")
public DataSource mainDataSource() {
return DataSourceBuilder.create().build();
}
}
バックアップデータソース:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories("org.app")
@EntityScan("org.app")
public class BackupDataSourceConfig {
@Bean(name = "backupDataSource")
@ConfigurationProperties(prefix = "backup.datasource")
public DataSource backupDataSource() {
return DataSourceBuilder.create().build();
}
}
ありがとう!