gpt4 book ai didi

java - 在 spring boot 中设置嵌入式 tomcat 属性,bean 用法?

转载 作者:行者123 更新时间:2023-11-28 23:20:56 24 4
gpt4 key购买 nike

我已经阅读并完成了这个 https://www.mkyong.com/spring-boot/spring-boot-configure-maxswallowsize-in-embedded-tomcat/通过将它包含在我的一个类(class)中,但我不知道如何确保它应该被执行。我什至尝试在我的代码中运行该函数,但我不断收到 ERR_CONNECTION_RESET 返回到我的网络应用程序。

我没有改变任何其他东西。有什么我想念的吗?

最佳答案

我以前遇到过这个问题并找到了这样的解决方案;在 application.properties 上设置这些参数:

spring.datasource.test-on-borrow=true
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1

但它对我的 spring-boot 版本不起作用。然后我检查了 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;
}
}

关于java - 在 spring boot 中设置嵌入式 tomcat 属性,bean 用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43946804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com