§ Doc 6.8.2 Property Defaults
Several of the libraries supported by Spring Boot use caches to improve performance. For example, template engines cache compiled templates to avoid repeatedly parsing template files. Also, Spring MVC can add HTTP caching headers to responses when serving static resources.
Boot 提供的數個 libraries 支援快取功能去改進執行效率,譬如說在模板引擎(template engines) 編譯模板時候採用快取去避免重複解析模板檔案。同樣地,Spring MVC 可以在 HTTP headers 使用快取去回應請求靜態資源。
這裡提到的模板引擎,可以理解成寫在 Server 端的動態網頁。在過去前後還沒有分離的時候,
網頁是寫在後端的,JSP(新稱: Jakarta Server Pages,舊稱: Java Server Pages) ,一個跟 html 相似的東西,但內部可以執行 java 程式碼,透過作用範圍的暫存(context, session, etc…) 去記住客戶的資料。模板引擎類似上述所提的 JSP 但本質是不一樣的東西,而且Boot 不只支援一種模板引擎。
下方提供資料給有興趣了解模板引擎和 JSP 差異性的人。
While caching is very beneficial in production, it can be counter-productive during development, preventing you from seeing the changes you just made in your application. For this reason, spring-boot-devtools disables the caching options by default.
快取對於產品是有幫助,但在開發上會產生反效果,譬如說開發之中進行測試時候,記住快取的話就看不出變更之間的成效,所以 spring-boot-devtools 預設是關閉這些快取的。
簡單來說,你引入一堆由 spring boot 提供的 package,裡頭很多功能都含有快取的功能,如果你引入 spring-boot-devtools 的話,就會在開發階段,自動幫你關上這些快取,但你或許會問….. springo-boot-devtools 在產品階段同樣會關閉這些快取功能,我們又要另外去開啟,這豈不是很麻煩 ?
不用擔心這點,在產出 production 的時候,devtools 是不會被包覆進去,自然這些快取功能,自然是不會被關閉的(見 {stackoverflow} spring-boot-dev-tools-turning-them-off-for-production) 。
快取對於產品是有幫助,但在開發上會產生反效果,譬如說開發之中進行測試時候,記住快取的話就看不出變更之間的成效,所以 spring-boot-devtools 預設是關閉這些快取的。
簡單來說,你引入一堆由 spring boot 提供的 package,裡頭很多功能都含有快取的功能,如果你引入 spring-boot-devtools 的話,就會在開發階段,自動幫你關上這些快取,但你或許會問….. springo-boot-devtools 在產品階段同樣會關閉這些快取功能,我們又要另外去開啟,這豈不是很麻煩 ?
不用擔心這點,在產出 production 的時候,devtools 是不會被包覆進去,自然這些快取功能,自然是不會被關閉的(見 {stackoverflow} spring-boot-dev-tools-turning-them-off-for-production) 。
Cache options are usually configured by settings in your
[application.properties](http://application.properties)
file. For example, Thymeleaf offers thespring.thymeleaf.cache
property. Rather than needing to set these properties manually, thespring-boot-devtools
module automatically applies sensible development-time configuration.
通常快取的選項設定都會寫在 application.properties ,譬如說模板引擎 Thymeleaf 的快取開關(屬性)就是 spring.thymeleaf.cache 。 比起需要手動設定這些屬性,spring-boot-devtools 自動提供開發時候的註冊設定。
下方列出 spring-boot-devtools 提供的開發階段的設定
快取對於產品是有幫助,但在開發上會產生反效果,譬如說開發之中進行測試時候,記住快取的話就看不出變更之間的成效,所以 spring-boot-devtools 預設是關閉這些快取的。
簡單來說,你引入一堆由 spring boot 提供的 package,裡頭很多功能都含有快取的功能,如果你引入 spring-boot-devtools 的話,就會在開發階段,自動幫你關上這些快取,但你或許會問….. springo-boot-devtools 在產品階段同樣會關閉這些快取功能,我們又要另外去開啟,這豈不是很麻煩 ?
不用擔心這點,在產出 production 的時候,devtools 是不會被包覆進去,自然這些快取功能,自然是不會被關閉的(見 {stackoverflow} spring-boot-dev-tools-turning-them-off-for-production) 。
Cache options are usually configured by settings in your
[application.properties](http://application.properties)
file. For example, Thymeleaf offers thespring.thymeleaf.cache
property. Rather than needing to set these properties manually, thespring-boot-devtools
module automatically applies sensible development-time configuration.
通常快取的選項設定都會寫在 application.properties ,譬如說模板引擎 Thymeleaf 的快取開關(屬性)就是 spring.thymeleaf.cache 。 比起需要手動設定這些屬性,spring-boot-devtools 自動提供開發時候的註冊設定。
下方列出 spring-boot-devtools 提供的開發階段的設定
參考資料
{stackoverflow} what is the difference between service reload and service restart
https://stackoverflow.com/questions/7374181/what-is-the-difference-between-service-reload-and-service-restart
{stackoverflow} spring-boot-dev-tools-turning-them-off-for-production
https://stackoverflow.com/questions/37701330/spring-boot-dev-tools-turning-them-off-for-production
Thymelead vs JSP
https://mindmajix.com/thymeleaf-vs-jsp