2017-10-06 3 views
0

Je suis nouveau sur java et spring boot (ard 1 mois exp). Quelqu'un peut-il me dire comment puis-je charger des données de la mémoire avant de démarrer l'application.java spring boot récupère les valeurs de db avant de démarrer

Exemple:

Je info dans db dire le genre

TABLE : gender 
F : Female 
M : Male 

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

Donc, avant l'application de commencer, je veux ces données shoulw être extrait de db et charge à ma demande.

J'utilise java + boot sprint + JPA

+0

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

Répondre

0

Je dirais que la façon la plus simple serait de le faire juste après le début de l'application (dans la méthode principale).

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

Je ne sais pas pourquoi vous en auriez besoin avant le démarrage. Vous pouvez également l'inclure dans l'un des beans (celui qui a réellement besoin des données) et utiliser la méthode @PostConstruct. Ou fournissez une méthode Init pour ce bean

+0

est le printemps de l'événement d'application semble prêt meilleure option que cela? Aussi je veux cela comme je dis db requête en temps réel. En outre, il augmentera le temps de premier demande –

+0

oui il augmentera la première demande donc si vous le faites dans la méthode principale, il fonctionnera quand l'application est démarrée –

+0

alors ne pensez pas que l'événement est mieux que nous pouvons le faire juste avant startuo –

0

Vous pouvez utiliser un bloc statique comme emplacement de chargement.

static { // logic to load data from db. }