开发者社区> 问答> 正文

Spring boot autoconfig下能否优化下setMinEvictableIdleTim

在springboot下的@ConfigurationProperties自动属性注入的时候,由于spring框架自动注入bean属性数据,导致会优先设置setMaxEvictableIdleTimeMillis,此时还未进行 setMinEvictableIdleTimeMillis属性的设置,但是setMinEvictableIdleTimeMillis的默认值会成为setMaxEvictableIdleTimeMillis判断的值。导致检查失败。

原提问者GitHub用户Plen-wang

展开
收起
山海行 2023-07-05 20:59:42 67 0
3 条回答
写回答
取消 提交回答
  • 在Spring Boot的自动配置中,确实存在一些属性绑定顺序的问题。这可能导致在设置连接池参数时出现优先设置setMaxEvictableIdleTimeMillis,而还未设置setMinEvictableIdleTimeMillis的情况。

    如果您希望优化setMinEvictableIdleTimeMillis属性的设置,可以考虑以下方案:

    1. 通过编码方式设置参数:在您的代码中手动设置连接池的属性,确保先设置setMinEvictableIdleTimeMillis再设置setMaxEvictableIdleTimeMillis。这样可以避免默认值对判断产生影响。

    2. 在配置文件中显式设置属性:可以在application.propertiesapplication.yml文件中显式地设置连接池的属性,包括min-evictable-idle-time-millismax-evictable-idle-time-millis。这样可以确保属性按照期望的顺序进行绑定。

    3. 使用新版本:根据回答中提到的,新版本已经修复了这个问题。所以您可以尝试升级到最新版本的Spring Boot和连接池相关的依赖库,看看是否解决了属性绑定顺序的问题。

    请注意,具体的实施方法可能会因您使用的连接池库(如HikariCP、Tomcat JDBC、Druid等)而有所不同。您可以根据具体的库文档或源码来查找适合您的解决方案。

    2023-07-30 15:06:41
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在Spring Boot的自动配置中,可以通过配置文件或者编码方式来设置连接池的各种参数,包括setMinEvictableIdleTimeMillis(连接空闲时间超时时间)等参数。如果您希望优化setMinEvictableIdleTimeMillis参数的设置,可以考虑以下几个方面:

    设置合理的连接池参数。setMinEvictableIdleTimeMillis参数表示连接池中连接的最小空闲时间,超过这个时间的连接将被回收。如果连接池中的连接数量比较少,可以适当增加setMinEvictableIdleTimeMillis参数的值,以减少过于频繁的连接回收操作。如果连接池中的连接数量比较多,可以适当减小setMinEvictableIdleTimeMillis参数的值,以及时回收不再使用的连接。

    使用合适的连接池实现。Spring Boot支持多种连接池实现,包括HikariCP、Tomcat JDBC、Druid等。不同的连接池实现可能在连接管理、性能、稳定性等方面有所不同,因此可以根据实际需求选择合适的连接池实现,并设置相应的连接池参数。

    监控连接池使用情况。连接池的使用情况对系统的性能和稳定性有很大影响,因此可以使用监控工具来监控连接池使用情况,并及时调整连接池参数。Spring Boot提供了多种监控工具,包括Spring Boot Actuator、Druid监控等,可以方便地监控连接池的使用情况和性能指标。

    2023-07-30 13:06:14
    赞同 展开评论 打赏
  • Spring Boot 在绑定属性的时候没有按照配置文件内配置项的顺序,貌似是按ASCII码的顺序进行绑定的,建议maxEvictableIdleTimeMillis先自己通过Environment来配置或者不要小于Durid DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS = 1000L * 60L * 30L。

    新版本已修复。

    原回答者GitHub用户lihengming

    2023-07-06 11:47:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多