我将使用@Configuration批注使一个对象的工作是构造bean和处理DB down场景。构造bean时,请测试数据库连接是否已建立,如果不是,则返回bean的虚拟版本。这将注入到相关对象中。这个虚拟bean的工作实际上是在调用时抛出一个不可用的异常。如果您的应用程序可以处理某些功能无法使用的异常,并在使用其他数据源时继续向用户显示该功能,那么您应该可以。
@Configuration
public class DataAccessConfiguration {
@Bean
public DataSource dataSource() {
try {
//create data source to your database
....
return realDataSource;
} catch (Exception) {
//create dummy data source
....
return dummyDataSource;
}
}
}
Run Code Online (Sandbox Code Playgroud)