Spring

1. 概述

  1. spring 配合 thymeleaf 关闭页面缓存

2. 背景

  1. 最近复习 spring

  2. 找了本书叫 spring in action 5th

    1. 本人水平有限
    2. 书还写得那么难
  3. 调试中遇到了问题

    1. 问题1: 我每次改代码, 都要重启
    2. 问题2: 我每次改页面, 都要重启
  4. 因为 问题2 对我来说, 优先级最高, 我首先解决它

3. 环境

  1. os

    1. win10
  2. jdk

    1. 1.8
  3. ide

    1. ida 2018.1
  4. spring

    1. spring boot
      1. 2.1.7 release
    2. 组件
      1. thymeleaf
      2. starter-web
      3. devtool
      4. starter-test
  5. browser

    1. firefox
      1. 70.0
  6. ref

    1. spring in action 5th

4. 问题

  1. 期望

    1. 在 ide 修改页面
    2. 在浏览器直接刷新, 就能看到页面调整
  2. 需要保证

    1. 浏览器的正确配置
      1. 浏览器
        1. 确保每次请求, 都是新鲜的页面
    2. spring 和 thymeleaf 的正确配置
      1. spring
        1. 确保 thymeleaf 的修改能及时

5. 问题解决

  1. 浏览器

    1. 思路1: 每次访问后清空缓存

      1. 结果
        1. 否决
          1. 太麻烦了
    2. 思路2: 通过浏览器配置, 确保每次请求, 都是新页面

      1. 结果

        1. 这个方案不错
        2. 而且也有配置项可以做到
        3. 因为很顺利, 就不细说了, 照着配置一步步来就行
      2. ref

        1. 设置火狐浏览器不缓存js与html
  2. thymeleaf

    1. 思路: 找到配置项, 配置一下就好了
      1. 结果

        1. 妈的找死我了
        2. 百度了好多, 都没用
          1. 千篇一律, 只有一条参数

            spring.thymeleaf.cache=false
            
          2. 结果配置了根本不生效

          3. 这感觉太难受了, 真的想骂人

      2. 最后结果

        1. ref
          1. Thymeleaf templates cache even when spring.template.cache: false

            1. 一个叫 oak1980 的丹麦老哥, 给了一个配置如下

              # Templates reloading during development
              spring.thymeleaf.prefix=file:src/main/resources/templates/
              spring.thymeleaf.cache=false
              
              # Static resources reloading during development
              spring.resources.static-locations=file:src/main/resources/static/
              spring.resources.cache-period=0
              
          2. 按照这个老哥的做法, 配置终于生效

ps

  1. 妈的为啥我百度的头几个, 没有一个把事说明白

    1. 大部分只给了 cache = false 的那条配置
    2. 其他提到 prefix 的, 还都把 prefix 注释了
    3. 配置的 ide, 组件, 版本也没有
    4. 找了好半天, 问题是这种都是调试常识之类的东西
  2. spring 如何确认运行阶段生效了哪些配置项

    1. 这个找了半天, 也没找到
    2. 我总觉得可以...
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出
原文地址:https://www.cnblogs.com/xy14/p/11746796.html