2016-06-04 4 views

Antwort

0

Angenommen, Sie auf Webservice oder Web-Anwendung arbeiten.

  1. Ein Client sendet die Mandanten-ID als Header-Parameter.

  2. schreibt einen Filter und die Mieter Details aus dem Cache von Mieter-ID erhalten.

  3. die Schemanamen in den zum Beispiel Filter Set:

    MDC.put(Constants.MONGO_TENANT_DB, "uat"); 
    
  4. MongoMultiTenancyInterceptor wird vor jedem DB-Betrieb/orm Aufruf aufgerufen. Zeichenfolge mandantDBName = MDC.get (Constants.MONGO_TENANT_DB);

    LOG.info("Switching to database: "+tenantDBName); 
        if(StringUtils.isNotBlank(tenantDBName)){ 
          MultitenantDatastoreFactory.setDatabaseNameForCurrentThread(tenantDBName); 
        } 
        Setting the Database name for current Thread. 
    
  5. MultitenantDatastoreFactory: Erstellen Sie Datenspeicher Instanz pro Mieter Schema und speichern in HashMap.

  6. MultitenantDatastoreFactory.getDS(): Gibt den Datenspeicher aus der HashMap von Schemanamen

  7. UserRepository: Es Objekt Datastor erhalten wird aus der Factory-Methode und führen Sie eine beliebige Operation DB.

ich mein Projekt in GitHub hochgeladen haben, können Sie den Code von Github herunterladen

https://github.com/vikashnitk50/spring-morphia-db-poc