いくつかの春ブーツのヒント、少し知識
初期化データ
私たちは、多くの場合、それに対処する方法を、いくつかのデータをインポートするための時間を初期化する必要がテストをやっているの?1が別の春のJDBCで、JPAを使用する2つのオプション、があります。以下に詳細に説明する各2つの方法の間の差異。
JPAを使用してください
使用の際にspring boot jpa
設定した場合spring.jpa.hibernate.ddl-auto
プロパティがに設定されている create
か、 create-drop
春のブートが開始デフォルトでは、それが存在するかどうか、あなたのクラスパス(通常はプロジェクトのリソースディレクトリ)をスキャンするときimport.sql
、あなたが実行する機会があれば、import.sql
スクリプトを。
使用春のJDBC
春のJDBCは、設定ファイルに以下の設定を追加する必要があります使用します
スプリング: データソース: スキーマ:データベース / data.sqlに SQL -scriptエンコーディング:UTF-8 JPA: 休止状態: DDL -auto:なし
- スキーマ:スクリプトのパスを設定します。
- SQLスクリプトエンコーディング:スクリプトのエンコーディングを設定します
春のブートプロジェクトスクリプトの実行時に自動的に起動します。
四つの値を説明するDDL-オート
- 作成:休止状態は、各時間は、テーブルの最後の世代を削除し、あなたのモデルタイプに基づいて、その後再生成新しいテーブル、2はどのような変化が実行されなければならない持っていない場合でも、これはデータベーステーブルのデータの損失が生じていることが重要であるだろうにロードされます理由。
- 作成ドロップを:休止状態に応じて各モデルのクラステーブルをロードするが、閉じられたテーブルが自動的に削除されるのSessionFactory。
- 更新:あなたの最初の負荷を自動的に(前提が良いデータベースを設定することである)、テーブルのモデルクラスの構造に応じて設定休止状態時に、自動的にモデルクラスに基づいてテーブル構造を更新し、テーブル構造の変更後に休止状態が、場合でも、ロードされている最も一般的に使用されるプロパティ、前の行を削除しないテーブルの行が残っています。サーバーにデプロイする場合、テーブル構造がすぐに確立されることはありません、それは最初のアプリケーションの起動と前に実行した後に待機することに注意してください。
- 検証:休止状態をロードするたびに、データベースのテーブル構造を作成して検証し、データベース内のテーブルだけが比較され、それは新しいテーブルを作成しませんが、新しい値を挿入します。
5、なし:何もしません。
異なる点
JPAは、自動的に初期化データフォームを作成するための唯一の責任テーブル、import.sqlを作成するときに開始する最初の方法。あなたがテーブルを作成するときに、第2の方法は、起動しない、あなたは初期化スクリプト内のテーブル、再初期化スクリプトステップがあるかどうかを判断する必要があります。
生産では、これら2つのモデルが慎重に推奨されています!
htmlタグはThymeleafをチェックする設定されていません
デフォルトの設定、コンテンツ.htmlのためのThymeleafは非常に厳しい、例えば<meta charset="UTF-8" />
、小さな閉じ記号であれば/
、エラーが間違ったページに移動します。たとえば、あなたもこのライブラリVue.jsを使用することができ、そこで<div v-cloak></div>
、このhtmlコードがエラーをスローThymeleafの要件を満たしていないとみなされます。
この問題を解決することができますThymeleafのテンプレートを設定することにより、以下の具体的な構成は次のとおりです。
spring.thymeleaf.cache = falseを spring.thymeleaf.mode = LEGACYHTML5
LEGACYHTML5は、Mavenの依存関係は、完了するために、以下の追加されたプロジェクトのビルド・ツールで使用可能な追加のライブラリNekoHTMLと一致する必要があります。
<依存> <groupIdを> net.sourceforge.nekohtml </ groupIdを> <たartifactId> nekohtml </たartifactId> <バージョン> 1.9.22 </バージョン> </依存関係>
記事の内容は春ブーツ2.xのにアップグレードされました
参考:
いくつかの春ブーツのヒント、少し知識
初期化データ
私たちは、多くの場合、それに対処する方法を、いくつかのデータをインポートするための時間を初期化する必要がテストをやっているの?1が別の春のJDBCで、JPAを使用する2つのオプション、があります。以下に詳細に説明する各2つの方法の間の差異。
JPAを使用してください
使用の際にspring boot jpa
設定した場合spring.jpa.hibernate.ddl-auto
プロパティがに設定されている create
か、 create-drop
春のブートが開始デフォルトでは、それが存在するかどうか、あなたのクラスパス(通常はプロジェクトのリソースディレクトリ)をスキャンするときimport.sql
、あなたが実行する機会があれば、import.sql
スクリプトを。
使用春のJDBC
春のJDBCは、設定ファイルに以下の設定を追加する必要があります使用します
スプリング: データソース: スキーマ:データベース / data.sqlに SQL -scriptエンコーディング:UTF-8 JPA: 休止状態: DDL -auto:なし
- スキーマ:スクリプトのパスを設定します。
- SQLスクリプトエンコーディング:スクリプトのエンコーディングを設定します
春のブートプロジェクトスクリプトの実行時に自動的に起動します。
四つの値を説明するDDL-オート
- 作成:休止状態は、各時間は、テーブルの最後の世代を削除し、あなたのモデルタイプに基づいて、その後再生成新しいテーブル、2はどのような変化が実行されなければならない持っていない場合でも、これはデータベーステーブルのデータの損失が生じていることが重要であるだろうにロードされます理由。
- 作成ドロップを:休止状態に応じて各モデルのクラステーブルをロードするが、閉じられたテーブルが自動的に削除されるのSessionFactory。
- 更新:あなたの最初の負荷を自動的に(前提が良いデータベースを設定することである)、テーブルのモデルクラスの構造に応じて設定休止状態時に、自動的にモデルクラスに基づいてテーブル構造を更新し、テーブル構造の変更後に休止状態が、場合でも、ロードされている最も一般的に使用されるプロパティ、前の行を削除しないテーブルの行が残っています。サーバーにデプロイする場合、テーブル構造がすぐに確立されることはありません、それは最初のアプリケーションの起動と前に実行した後に待機することに注意してください。
- 検証:休止状態をロードするたびに、データベースのテーブル構造を作成して検証し、データベース内のテーブルだけが比較され、それは新しいテーブルを作成しませんが、新しい値を挿入します。
5、なし:何もしません。
異なる点
JPAは、自動的に初期化データフォームを作成するための唯一の責任テーブル、import.sqlを作成するときに開始する最初の方法。あなたがテーブルを作成するときに、第2の方法は、起動しない、あなたは初期化スクリプト内のテーブル、再初期化スクリプトステップがあるかどうかを判断する必要があります。
生産では、これら2つのモデルが慎重に推奨されています!
htmlタグはThymeleafをチェックする設定されていません
デフォルトの設定、コンテンツ.htmlのためのThymeleafは非常に厳しい、例えば<meta charset="UTF-8" />
、小さな閉じ記号であれば/
、エラーが間違ったページに移動します。たとえば、あなたもこのライブラリVue.jsを使用することができ、そこで<div v-cloak></div>
、このhtmlコードがエラーをスローThymeleafの要件を満たしていないとみなされます。
この問題を解決することができますThymeleafのテンプレートを設定することにより、以下の具体的な構成は次のとおりです。
spring.thymeleaf.cache = falseを spring.thymeleaf.mode = LEGACYHTML5
LEGACYHTML5は、Mavenの依存関係は、完了するために、以下の追加されたプロジェクトのビルド・ツールで使用可能な追加のライブラリNekoHTMLと一致する必要があります。
<依存> <groupIdを> net.sourceforge.nekohtml </ groupIdを> <たartifactId> nekohtml </たartifactId> <バージョン> 1.9.22 </バージョン> </依存関係>
記事の内容は春ブーツ2.xのにアップグレードされました
参考: