Spring Boot (十三): Spring Boot 小技巧

一些 Spring Boot 小技巧、小知識點html

初始化數據

咱們在作測試的時候常常須要初始化導入一些數據,如何來處理呢?會有兩種選擇,一種是使用 Jpa,另一種是 Spring JDBC 。兩種方式各有區別下面來詳細介紹。java

使用 Jpagit

在使用 spring boot jpa的狀況下設置 spring.jpa.hibernate.ddl-auto的屬性設置爲 create or create-drop的時候,Spring Boot 啓動時默認會掃描 classpath 下面(項目中通常是 resources 目錄)是否有 import.sql,若是有機會執行 import.sql腳本。github

使用 Spring JDBC面試

使用 Spring JDBC 須要在配置文件中添加如下配置spring

  1. spring:sql

  2. datasource:數據庫

  3. schema: classpath:db/schema.sql服務器

  4. data: classpath:db/data.sqlsession

  5. sql-script-encoding: utf-8

  6. jpa:

  7. hibernate:

  8. ddl-auto: none

  • schema :腳本中建立表的語句

  • data :腳本中初始化數據的預計

  • sql-script-encoding:設置腳本的編碼

Spring Boot 項目啓動的時候會自動執行腳本。

ddl-auto 四個值的解釋

  1. create: 每次加載hibernate時都會刪除上一次的生成的表,而後根據你的model類再從新來生成新表,哪怕兩次沒有任何改變也要這樣執行,這就是致使數據庫表數據丟失的一個重要緣由。

  2. create-drop :每次加載hibernate時根據model類生成表,可是sessionFactory一關閉,表就自動刪除。

  3. update:最經常使用的屬性,第一次加載hibernate時根據model類會自動創建起表的結構(前提是先創建好數據庫),之後加載hibernate時根據 model類自動更新表結構,即便表結構改變了但表中的行仍然存在不會刪除之前的行。要注意的是當部署到服務器後,表結構是不會被立刻創建起來的,是要等 應用第一次運行起來後纔會。

  4. validate :每次加載hibernate時,驗證建立數據庫表結構,只會和數據庫中的表進行比較,不會建立新表,可是會插入新值。 五、 none : 什麼都不作。

不一樣點

第一種方式啓動的時候 Jpa 會自動建立表,import.sql 只負責建立表單後的初始化數據。第二種方式啓動的時候不會建立表,須要在初始化腳本中判斷表是否存在,再初始化腳本的步驟。

在生產中,這兩種模式都建議慎用!

Thymeleaf 設置不校驗 html 標籤

默認配置下,Thymeleaf 對 .html 的內容要求很嚴格,好比 <metacharset="UTF-8"/>,若是少封閉符號 /,就會報錯而轉到錯誤頁。也好比你在使用 Vue.js 這樣的庫,而後有 <divv-cloak></div>這樣的 html 代碼,也會被 Thymeleaf 認爲不符合要求而拋出錯誤。

經過設置 Thymeleaf 模板能夠解決這個問題,下面是具體的配置:

  1. spring.thymeleaf.cache=false

  2. spring.thymeleaf.mode=LEGACYHTML5

LEGACYHTML5 須要搭配一個額外的庫 NekoHTML 纔可用,項目中使用的構建工具是 Maven 添加以下的依賴便可完成:

  1. <dependency>

  2. <groupId>net.sourceforge.nekohtml</groupId>

  3. <artifactId>nekohtml</artifactId>

  4. <version>1.9.22</version>

  5. </dependency>

自定義 Favicon

Spring Boot 提供了一個默認的 Favicon,也就是 Spring 的 logo ,咱們能夠根據本身企業的須要來定製它。

首先須要在 application.propertie 中關閉原有的logo

  1. spring.mvc.favicon.enable=false

在將本身的 favicon.ico 放到 src/main/resources/static下 ,而後再從新啓動項目就能夠了。

文章內容已經升級到 Spring Boot 2.x

示例代碼-https://github.com/ityouknow/spring-boot-examples

-END-

Java 極客技術公衆號是由一羣熱愛 Java 開發的技術人組建成立,專一分享原創高質量的 Java 文章。若是您以爲咱們的文章還不錯,請幫忙讚揚、在看、轉發支持,鼓勵咱們分享出更好的文章。

關注公衆號,你們能夠在公衆號後臺回覆「博客園」,免費得到做者 Java 知識體系/面試必看資料。

 

原文出處:https://www.cnblogs.com/justdojava/p/11212056.html

相關文章
相關標籤/搜索