sql >> Databasteknik >  >> NoSQL >> MongoDB

Spring-data-mongodb ansluter till flera databaser i en Mongo-instans

Här är en länk till en artikel som jag tror är det du letar efter http://michaelbarnesjr.wordpress.com/2012/01/19/spring-data-mongo/

Nyckeln är att tillhandahålla flera mallar

konfigurera en mall för varje databas.

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

konfigurera en mall för varje databas.

<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 måste du berätta för Spring var dina förvar finns så att den kan injicera dem. De måste alla finnas i samma katalog. Jag försökte ha dem i olika underkataloger, och det fungerade inte korrekt. Så de finns alla i förvarskatalogen.

<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>

Varje förråd är ett gränssnitt och skrivs enligt följande (ja, du kan lämna dem tomma):

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

}

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

}

Namnet på den privata variabeln imageRepository är samlingen! Image.java kommer att sparas i bildsamlingen i imagedb-databasen.

Så här kan du hitta , infoga och ta bort poster:

@Service
public class ImageService {

    @Autowired
    private ImageRepository imageRepository;
}

Genom Autowiring matchar du variabelnamnet med namnet (id) i din konfiguration.



  1. Vad skulle vara MongoDB C#-drivrutinens motsvarighet till följande fråga med arrayuppdateringsoperatorn $[<identifier>]

  2. Hur säkert är det att lagra sessioner med Redis?

  3. MongoDB som kötjänst?

  4. Hur kan jag få för närvarande autentiserad användare Principal med fjädersäkerhet och Redis i vårstartapplikation