从session.timeout看application.properties的属性

前言

我们知道session的超时时间是配置在web.xml里的,但改成spring boot方式后要如何配置超时时间呢?在百度和谷歌上找了一段时间,都是server.session.timeout,但配置后都是没效果。因为spring boot 2.0和1.x相比调整了一些application.properties里属性的名称,而且网上spring boot 2.0的资料也比较少。后来自己看了下源码,终于被我找到正确的属性名,是server.servlet.session.timeout,亲测有效。那么,我们怎么看一个配置的属性名是什么呢?

源代码

我们知道application.properties里的属性都会映射到一个配置属性类里,server的配置属性类是org.springframework.boot.autoconfigure.web.ServerProperties,从注解上可以看到前缀是server,还有几个属性对象,主要看这个servlet。

@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties {
    /**
     * Server HTTP port.
     */
    private Integer port;
    @NestedConfigurationProperty
    private Ssl ssl;

    private final Servlet servlet = new Servlet();

    private final Tomcat tomcat = new Tomcat();

    private final Jetty jetty = new Jetty();

    private final Undertow undertow = new Undertow();

其中servlet这个属性对象里还有一些属性对象,主要看这个session。

    /**
     * Context path of the application.
     */
    private String contextPath;

    @NestedConfigurationProperty
    private final Session session = new Session();

这个session里就有我们要找的timeout,单位是秒。

    @DurationUnit(ChronoUnit.SECONDS)
    private Duration timeout = Duration.ofMinutes(30);

从以上的对象所属关系我们就可以看出这个timeout的属性名称为server.servlet.session.timeout,"."表示是前一个的属性对象,像contextPath这种驼峰表示法,配置在application.properties里推荐采用context-path这种方式表示。

结后语

以后再想查属性名称就可以直接看源代码了,比百度和谷歌来的靠谱多了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 《ONE DAY》 他总是懦弱,总是错过,风光时昼夜狂欢,目中无人,做得了成功的人,却做不成一个好人。 他总把一见...
    不上相姑娘阅读 2,990评论 0 3
  • 回归初心: 找寻最初的美好,越失去越珍惜,渴望童真的初心,记忆里的温存。 想象之中,美丽的样子,初心的感觉,那么自...
    酷乐青春阅读 1,414评论 0 0
  • 火车的律动 在黎明前苏醒 一阵风袭来,带走丝丝忧愁 又是一个夜 月色开满了花 你瞳孔的眸子搜寻 七月飘香的味道 清...
    浊酒清忧阅读 1,711评论 0 3

友情链接更多精彩内容