2014-05-07 11 views
10

Ich versuchte die Spring Guide Accessing Data with MongoDB. Was ich nicht herausfinden kann, ist, wie ich meinen Code so konfiguriere, dass er nicht die Standard-Serveradresse verwendet und nicht die Standarddatenbank verwendet. Ich habe viele Möglichkeiten gesehen, dies mit XML zu tun, aber ich versuche, mit vollständig XML-freien Konfigurationen zu bleiben.Spring Data: Java-Konfiguration für MongoDB ohne XML

Hat jemand ein Beispiel, das den Server und die Datenbank ohne XML einstellt und leicht in das Beispiel integriert werden kann, das im Spring Guide angezeigt wird?

. Hinweis: Ich habe erfahren, wie die Sammlung setzen (für den Ausdruck suchen on this page „Welche Kollektion werden meine Dokumente in gespeichert werden“

Danke

ps gleiche Geschichte mit dem Spring-Führer! JPA - wie konfigurieren Sie die db Eigenschaften - aber das ist eine andere Post :)

Antwort

32

Es wäre so etwas wie dies für eine grundlegende Konfiguration:

@Configuration 
@EnableMongoRepositories 
public class MongoConfiguration extends AbstractMongoConfiguration { 

    @Override 
    protected String getDatabaseName() { 
     return "dataBaseName"; 
    } 

    @Override 
    public Mongo mongo() throws Exception { 
     return new MongoClient("127.0.0.1", 27017); 
    } 

    @Override 
    protected String getMappingBasePackage() { 
     return "foo.bar.domain"; 
    } 
} 

Beispiel für ein Dokument:

@Document 
public class Person { 

    @Id 
    private String id; 

    private String name; 

    public Person(String name) { 
     this.name = name; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

Beispiel für ein Endlager:

@Repository 
public class PersonRepository { 

    @Autowired 
    MongoTemplate mongoTemplate; 

    public long countAllPersons() { 
     return mongoTemplate.count(null, Person.class); 
    } 
} 
+0

Dank, dass es zu erklären! Es tut mir leid, dass ich kein "Vote Up" machen kann, da ich nicht genug Reputationspunkte habe (erfordert 15) - aber ich habe die Antwort als beantwortet markiert. – mbird

+0

Ich wählte es für Sie :) – tekkavi

+0

Funktioniert dieses Skript mit Cloud-Foundry? Meins arbeitet lokal, aber wenn ich zur Wolkengießerei schiebe, kann es die Verbindung nicht herstellen – Jesse

Verwandte Themen