2017-10-06 15 views
0

私はJavaとSpringのブート(ard 1 month exp)を初めて使用しています。 アプリケーションを起動する前に、メモリからデータをロードする方法を教えてもらえますか?java spring boot起動前にdbから値を取得する

例:アプリケーションは、私は、このデータは、私のアプリケーションにDBと負荷からフェッチさshoulwたい開始する前に

私はデシベルで情報を持っているが、性別ので

TABLE : gender 
F : Female 
M : Male 

TABLE : COUNTRY 
1 : US 
2 : UK 
3 : RUSSIA 

言います。私は、Java +スプリントブーツ+ JPA

+0

https://medium.com/@dmarko484/spring-boot-startup-init-through-postconstruct-765b5a5c1d29 –

答えて

0

を使用しています

私は最も簡単な方法は、右のアプリケーションが起動した後(mainメソッドで)それを行うことであろうと言うでしょう。

public static void main(final String[] args) { 
    ConfigurableApplicationContext context = SpringApplication.run(Application.class, args); 
    context.getBean(YourClass.class).loadFromDatabase(); //Or whatever you want 
} 

なぜ私はスタートアップの前にそれが必要かわかりません。 Beanの1つ(データが実際に必要なもの)に含めることもできますし、@PostConstructメソッドを使用することもできます。または、そのBeanのInitメソッドを提供してください。

+0

は、アプリケーションreadyイベントスプリングは、このことをより良いオプションですか?また、私はリアルタイムでdbクエリを言っているようにこれをしたい。また、最初のreqの時間を増やす –

+0

はいそれは最初の要求を増やすので、もしそれがアプリケーションが起動されたときに動作するmainメソッドでそれを行うでしょう。 –

+0

あなたは、startuoの直前にそれを行うことができるので、イベントは良くないとは思わない –

0

ロードできる場所としてスタティックブロックを使用できます。

static { // logic to load data from db. } 
関連する問題