Spring 4 - 如果DB down,无法启动服务器

问题描述 投票:0回答:1

如果DB关闭,我的tomcat无法启动。我想如何让弹簧允许启动甚至数据库都关闭,并且一旦DB活着就会重新连接数据库?

我使用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>
java spring spring-mvc tomcat spring-4
1个回答
0
投票

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

spring.datasource.continue-on-error=true

即使重新连接也不建议,你仍然可以通过设置(链接here)来实现:

spring.datasource.testOnBorrow=true
© www.soinside.com 2019 - 2024. All rights reserved.