java - Spring 4 - 如果数据库关闭则无法启动服务器

标签 java spring spring-mvc tomcat spring-4

如果数据库关闭,我的 tomcat 将无法启动。我如何希望 spring 允许即使数据库已关闭也可以启动,并且一旦数据库处于 Activity 状态就会重新连接数据库?

我使用 Spring 4 和 BoneCP 作为数据源。下面是我在 applicationContext.xml 中的 jdbc 配置。我正在使用 Tomcat 8.5。

<bean id="defaultDataSource" class="com.jolbox.bonecp.BoneCPDataSource"
    destroy-method="close" p:driverClass="${jdbc.driverClassName}"
    p:jdbcUrl="${jdbc.url}" p:username="${jdbc.user}" p:password="${jdbc.pass}"
    p:maxConnectionsPerPartition="${partition.max.connections}"
    p:minConnectionsPerPartition="${partition.min.connections}"
    p:partitionCount="${partition.count}" p:acquireIncrement="${partition.acquire.incrementcount}"
    p:statementsCacheSize="${statements.cache.size}"
    p:idleMaxAgeInMinutes="${idle.max.age.minutes}" />

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
    <property name="targetDataSource" ref="defaultDataSource" />
</bean>


<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource" />
</bean>

最佳答案

您可以将 spring 进程设置为即使在出现数据库错误时也启动,如果您使用 spring boot,您可以设置为 ( doc) :

spring.datasource.continue-on-error=true

即使不推荐重新连接,您仍然可以通过设置(链接 here):

spring.datasource.testOnBorrow=true

关于java - Spring 4 - 如果数据库关闭则无法启动服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48087839/

相关文章:

java - 如何在 Spring Boot JPA 中连接到多个数据库?

java - BlackBerry 应用程序中的用户移动方向

java - 使用PreparedStatement时出现com.mysql.jdbc.exceptions.MySQLSyntaxErrorException

java - 非常简单的 Spring AOP 切入点

java - 如何将 HTML 表数据绑定(bind)到 Spring Controller 中的 java 对象?

java - Spring 4 不支持 scope 属性吗?

java - 如何刷新/更新@Autowired EurekaClient

java - 运行并编译 Spring Boot 多模块项目

java - 覆盖 BindingResult 中的错误消息

java - Spring Boot Web/Tomcat拒绝特定网络的连接(Vodafone)