2017-04-18 2 views
0

Bonjour collègues développeurs,Changer Java Bean Boot Bean pendant l'exécution

J'ai créé une bibliothèque en utilisant le cadre de démarrage Spring.

Cette bibliothèque crée une connexion de base de données dynamique en utilisant @Beans où je crée un bean "data" qui contient les beans Source de données illimités fournis par une base de données Postgresql. A la fin, je voulais avoir une connexion db dynamique qui pourrait être déclenchée de l'extérieur pour changer la base de données à laquelle je veux me connecter. L'information des différentes bases de données où stocké comme mentionné à l'intérieur d'un postgres. Ceci est chargé au démarrage de l'application dans ce bean. Mon problème est, que je ne suis pas capable de basculer entre les différents beans Datasource. Spring boot les crée, mais il semble qu'il ne soit pas possible de changer le bean démarré lors de l'exécution de l'application qui ne contient qu'une des sources de données illimitées ... Donc aussi après un redéclenchement de la création du bean original il utilise toujours le ancienne source de données.

Existe-t-il un moyen d'utiliser les fèves de la botte de ressort et de les changer en cours de fonctionnement? Cordialement, Andreas

Répondre

0

Je crois que vous demandez un soutien DB multitenancy où l'information des locataires est stocké dans un Postgres DB.

Configuration de la couche persistante pour le support multi-tenancy consiste à configurer:

  • Hibernate, JPA et propriétés DataSources
  • DataSources haricots
  • entité gestionnaire haricot usine
  • haricot gestionnaire de transactions
  • printemps Transactions JPA de données et annotations

Je ai récemment blog sur Multi-tenant applications using Spring Boot, JPA, Hibernate and Postgres et bien que les données des locataires sont stockées dans un fichier "properties" yml, il ne devrait pas être difficile de le convertir pour lire les données de locataires d'un DB. Je pense que ce serait un point de départ pour ce que vous voudriez accomplir.