Je crée une application Springboot avec OpenJPA. Mon exigence est que j'ai besoin de se connecter dynamiquement à plusieurs sources de données et que les informations d'identification de la source de données sont obtenues au moment de l'exécution en appelant des points de terminaison.Création dynamique d'une source de données dans l'application SpringBoot OpenJPA (implémentation de la mutualisation avec OpenJPA)
Voici la classe contrôleur:
@RestController
public class StationController {
@Autowired
BasicDataSource dataSource;
J'ai un service qui me renvoie le jdbc_url en fonction du nom du client:
public String getDSInfo(String customername){
// code to get the datasource info (JDBC URL)
}
Mes questions sont les suivantes:
Existe-t-il un moyen de créer des sources de données à l'exécution en obtenant des informations d'identification de source de données en appelant ainsi moi autre service (qui prend l'identifiant du client et renvoie la source de données spécifique au client)? Comme mon application est une application Web, de nombreux clients y accèderont en même temps, alors comment créer et gérer autant de sources de données différentes?
REMARQUE:
Le code obtenir des informations sur la source de données spécifiques à la clientèle seulement en tirant un service à l'exécution, je ne peux pas hardcode les informations d'identification de source de données dans le fichier de configuration XML.
J'ai trouvé quelques implémentations avec Hibernate mais j'utilise Springboot avec OpenJPA. Donc, besoin d'aide spécifique OpenJPA.
Laissez-moi essayer. Cette solution fonctionne-t-elle également si plusieurs clients accèdent à l'application en même temps? –
Oui, c'est l'idée. Une coutume particulière pourrait arriver à l'application en transmettant un code spécifique au client sur l'URL.Lorsqu'ils se connectent, ils sont définis sur un thread local, puis à partir de ce moment lorsqu'ils accèdent à des données via votre gestionnaire d'entités personnalisé, entitymanager saisit la source de données du client à partir de la map. La magie est l'utilisation d'une portée personnalisée client. Tout cela est expliqué dans les 10-15 dernières minutes de la vidéo. – PaulNUK
Merci pour les liens, sont-ils également applicables pour l'application printanière OpenJPA? –