2016-09-01 13 views
9

私はスプリングブートアプリケーションを開発中です。現時点では、私の設定の一部はハードコーディングされています(ヒステリックプロパティなど)。スプリングブート。 SQLスクリプトを実行し、アプリケーションの起動時にデータを取得する

私はアプリケーションの起動時に、またはその直後にこれらの設定を取得したいと思います。

スプリングブーツを使用しても可能ですか?私は起動時にSQLスクリプトを実行し、データを取得することを意味します。

プロパティ/設定をアプリケーションでどのように取得して保存する必要がありますか?

私はMyBatisとOracle DBを使用しています。

+0

を。それらをプロファイルに依存させる。 – duffymo

+0

私はそのような考えを持っていましたが、現時点ではDBから値を取得したいと考えています:) – Laurynas

答えて

9

デフォルトでは、スプリングブートはdata.sqlおよび/またはdata-${platform}.sqlをロードします。

しかし、スクリプトはすべての開始時にロードされるので、私はそれがデータベースに既に存在する値を持っていて、すべてのスタート。 メモリデータベースを使用しているときは、私は個人的にテスト/ devの目的でデータベースの初期化を使用しました。それでも、これはSpring-Bootが提供する機能です。

ソース:spring-boot-howto-database-initialization

春JDBCは、DataSourceの初期化機能を備えています。 Spring Bootはデフォルトで を有効にし、標準ロケーションschema.sqlおよび data.sql(クラスパスのルート内)からSQLをロードします。さらに、Springブートは スキーマ - $ {platform} .sqlとdata - $ {platform} .sqlファイルを読み込みます( が存在する場合)。

のsrc /メイン/リソース/ データのoracle.sql:spring.datasource.platform=oracle

insert into... 
insert into... 
  • あなたはとプラットフォームを定義することができます。
  • ロードするSQLスクリプトの名前は、spring.datasource.data=myscript.sqlと変更できます。
  • spring-bootはdata.sqlと一緒に(data.sqlの前に)schema.sqlもロードします。
  • また、「更新するか、挿入し、」持っているあなたのdata.sqlに内のロジック可能性:application.ymlに入れoracle sql: update if exists else insert
+0

データを挿入する必要はありません。私はDBからデータを取得する必要があります:) – Laurynas

+0

私は見る!これを見てみましょう(これは春のブーツ特有のものではありませんが、あなたにとっては良い解決策です):http://pawel-malczyk.pl/wordpress/?p=540 – alexbt

+0

btw、あなたはあなたのタイトルを " SQLスクリプトを実行し、アプリケーションの起動時にデータを格納する」という記述と「起動時にSQLスクリプトを実行する」という記述があります。 – alexbt

関連する問題