sql >> Database teknologi >  >> NoSQL >> MongoDB

Spring-data-mongodb opretter forbindelse til flere databaser i én Mongo-instans

Her er et link til en artikel, som jeg tror er det, du leder efter http://michaelbarnesjr.wordpress.com/2012/01/19/spring-data-mongo/

Nøglen er at levere flere skabeloner

konfigurere en skabelon for hver database.

<bean id="vehicleTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoConnection"/>
    <constructor-arg name="databaseName" value="vehicledatabase"/>
</bean>

konfigurere en skabelon for hver database.

<bean id="imageTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongoConnection"/>
        <constructor-arg name="databaseName" value="imagedatabase"/>
</bean>

<bean id="vehicleTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoConnection"/>
    <constructor-arg name="databaseName" value="vehicledatabase"/>
</bean>

Nu skal du fortælle Spring, hvor dine depoter er, så den kan injicere dem. De skal alle være i samme mappe. Jeg forsøgte at have dem i forskellige undermapper, og det fungerede ikke korrekt. Så de er alle i depotbiblioteket.

<mongo:repositories base-package="my.package.repository">
    <mongo:repository id="imageRepository" mongo-template-ref="imageTemplate"/>
    <mongo:repository id="carRepository" mongo-template-ref="vehicleTemplate"/>
    <mongo:repository id="truckRepository" mongo-template-ref="vehicleTemplate"/>
</mongo:repositories>

Hvert lager er en grænseflade og er skrevet som følger (ja, du kan lade dem være tomme):

@Repository
public interface ImageRepository extends MongoRepository<Image, String> {

}

@Repository
public interface TruckRepository extends MongoRepository<Truck, String> {

}

Navnet på den private variabel imageRepository er samlingen! Image.java vil blive gemt i billedsamlingen i imagedb-databasen.

Sådan kan du finde , indsæt , og slet optegnelser:

@Service
public class ImageService {

    @Autowired
    private ImageRepository imageRepository;
}

Ved Autowiring matcher du variabelnavnet med navnet (id) i din konfiguration.



  1. hvordan man konfigurerer debezium-felter sendt ved opdateringsbegivenheder (mongo-stik)

  2. MongoDB atomopdatering via 'flet' dokument

  3. node.JS Express pas routing

  4. Få MongoDB på Linux til at lytte til fjernforbindelser