0
私はこれを私のクラスの1つに含めることによってこれを読んだり完了させましたが、それが確実に実行されるはずがありません。私は自分のコードで関数を実行しようとしましたが、ERR_CONNECTION_RESETがWebアプリケーションに返され続けます。春の起動時に埋め込みのTomcatプロパティを設定すると、Beanの使用率は?
私は他に何も変更していません。私が紛失しているものはありますか?
私はこれを私のクラスの1つに含めることによってこれを読んだり完了させましたが、それが確実に実行されるはずがありません。私は自分のコードで関数を実行しようとしましたが、ERR_CONNECTION_RESETがWebアプリケーションに返され続けます。春の起動時に埋め込みのTomcatプロパティを設定すると、Beanの使用率は?
私は他に何も変更していません。私が紛失しているものはありますか?
私は以前この問題に直面し、このような解決策を見つけました。 application.propertiesにこれらのパラメータの設定:
spring.datasource.test-on-borrow=true
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1
しかし、それは私の春ブートバージョンで私のために働いていませんでした。次に、tomcat jdbcデータソースファクトリフィールドを確認し、dataSourceFactoryのフィールドがapplication.properties設定によって正常に設定されていないことに気付きました。
は最後に、私は、アプリケーションの初期化後に、これらのフィールドを設定することによってそれを解決して、私の接続リセットの問題は解決:
@Component
public class PoolConfiguration implements BeanPostProcessor {
@Value("${spring.datasource.test-on-borrow:true}")
private boolean isTestOnBorrow;
@Value("${spring.datasource.test-while-idle:true}")
private boolean isTestWhileIdle;
@Value("${spring.datasource.validation-query:SELECT 1}")
private String validationQuery;
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof TomcatJdbcDataSourceFactory) {
TomcatJdbcDataSourceFactory tomcatJdbcDataSourceFactory = (TomcatJdbcDataSourceFactory) bean;
tomcatJdbcDataSourceFactory.setTestOnBorrow(isTestOnBorrow);
tomcatJdbcDataSourceFactory.setTestWhileIdle(isTestWhileIdle);
tomcatJdbcDataSourceFactory.setValidationQuery(validationQuery);
}
return bean;
}
}