问题描述
我已经实现了一个在Tomcat服务器上运行并使用Cassandra作为数据库的spring boot oAuth应用程序。当数据库服务器启动并运行时,将部署应用程序并正常运行。当数据库关闭时会出现问题,因此我的oAuth应用程序也拒绝部署。这些应用程序部署在生产环境中的其他服务器上,因此当我的容器重新启动时,我们无法保证服务器重新启动的顺序。
我尝试了许多可用的解决方案,例如
//@EnableCassandraRepositories("<My Package>")
@EnableAutoConfiguration(exclude={CassandraDataAutoConfiguration.class})
在@SpringBootApplication
类中也使用类似的方法。但是没有任何帮助。
我猜测的真正问题是,我们正在使用Cassandra / Spring的默认实现,其中我们必须使用存储库。部署应用程序后,@Bean
/ @Autowired
批注会失败,并且我的应用程序也会出现。
- 我们正在考虑的实现可以如下:无论Cassandra处于关闭还是打开状态,oAuth应用程序都应运行。
- 如果数据库服务器已关闭,则当第一个请求到达OAuth时,它应建立连接,返回一个新的会话对象,并将相同的会话对象重新用于后续请求。
非常感谢您的帮助。预先谢谢你。
解决方法
您可以设置
spring.datasource.continue-on-error = true
在application.properties文件中。