MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как Spring Data знае кой магазин да подкрепи хранилище, ако се използват множество модули?

Решението кой да съхранява прокси сървър, създаден за интерфейс на хранилище на Spring Data, се взема само поради вашата настройка на конфигурацията. Да приемем, че имате следната конфигурация:

@Configuration
@EnableJpaRepositories("com.acme.foo")
@EnableMongoRepositories("com.acme.foo")
class Config { }

Това ще се взриви в даден момент, тъй като интерфейсите в пакета com.acme.foo и двете се откриват от инфраструктурата MongoDB и JPA. За да разрешите това, поддръжката на JavaConfig и XML ви позволява да дефинирате филтри за включване и изключване, така че да можете да използвате конвенции за именуване, допълнителни анотации или други подобни:

@Configuration
@EnableJpaRepositories(basePackages = "com.acme.foo", 
                       includeFilters = @Filter(JpaRepo.class))
@EnableMongoRepositories(base Packages = "com.acme.foo", 
                         includeFilters = @Filter(MongoRepo.class))
class Config { }

В този случай двете анотации @JpaRepo и @MongoRepo (ще бъдат създадени от вас) ще се използват за селективно задействане на откриването чрез анотиране на съответните интерфейси на хранилище с тях.

Истинското автоматично откриване е донякъде невъзможно, тъй като е трудно да се каже към кой магазин сте се насочили единствено от декларацията на интерфейса на хранилището и в момента, в който се създават дефинициите на компонента, ние дори не знаем за допълнителна инфраструктура (ан EntityManager или други подобни) все още.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Java драйвер, създаващ база данни и колекция

  2. Сериализиране на MongoDB find() връщане в неанонимен JSON масив, използвайки PyMongo

  3. Как да получа данни ReferenceField в mongoengine?

  4. Намиране на MongoDB в колекция с неизвестен ключ

  5. запишете паролата като осолен хеш в mongodb в потребителската колекция, използвайки python/bcrypt