2016-06-05 6 views
0

In meiner Anwendung muss ich mehrere Datenquellen erstellen (ich weiß nicht, wie viele) .. Dies kommt aus einer Konfigurationsdatei, wo ich jedes von ihnen einrichten (angenommen, dass alle diese Oracle Datenquelle sind).Spring - Mehrere Datenquellen programmatisch

Wie kann ich damit umgehen und wählen Sie einen anderen Parameter in der Konfigurationsdatei?

Meine Idee war, diese Datenquelle in eine Map zu legen und mit dem Schlüssel kann ich die richtige DataSource bekommen.

Das Problem ist, dass alle von ihnen mit @Bean Annotation erstellt werden sollen, und ich kann überall in der Anwendung zugreifen.

Haben Sie Vorschläge?

EDIT: Aus Konfigurationsdatei kann ich haben:

database1.username=... 
database1.password=... 

database2.username=... 
database2.password=... 

Bei Anwendung starten diese Konfigurationsdatei lesen und sollten getrennt @Bean für jeden erstellen, also kann ich später die richtige Datasource wählen basierend auf anderen Konfigurationsparameter.

+0

@Bean für jede DataSource mit eindeutigen Namen. Sie brauchen keine Karte; Verwenden Sie die BeanFactory. Bitten Sie sie, die DataSource mit Namen anzugeben. Warum duplizieren? – duffymo

+0

Schau meine Bearbeitung. Ich weiß nicht, wieviele DataSource ich haben kann, Benutzer definiert DataSource in einer Konfigurationsakte und ich muss sie verursachen. Also kann ich @Bean Definition nicht verwenden. Ich kann Bean auch nicht in XML verwenden, weil der Benutzer nichts über Spring wissen kann, schreibt er einfach Eigenschaften in die Datei :) – Mistre83

Antwort

0

Spring Environment Profiles sollte die Lösung für Ihr Problem sein. Zum Beispiel könnten Sie Ihre Anwendung mit der Konfigurationsdatei einrichten, um nur die Datenquellen mit dem Namen "group_a" zu verwenden.