web-dev-qa-db-fra.com

Spring - Plusieurs modules Spring Data trouvés, entrant en mode de configuration de référentiel strict

J'utilise Spring boot 2 avec Spring Data, Spring-Data-Elastisearch et Spring-data-Redis (pour les sessions http). Lorsque je démarre l'application. Je reçois

2017-10-29 17:38:33.376  INFO 18625 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2017-10-29 17:38:33.451  INFO 18625 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2017-10-29 17:38:33.461  INFO 18625 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2017-10-29 17:38:33.768  INFO 18625 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2017-10-29 17:38:33.783  INFO 18625 --- [  restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.ecommerce.core.repository.elastic.ProductElasticSearchRepository.
2017-10-29 17:38:33.787  INFO 18625 --- [  restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.ecommerce.core.repository.jpa.UserRepository.
2017-10-29 17:38:33.790  INFO 18625 --- [  restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.ecommerce.core.repository.jpa.catalog.CategoryJsonWrapperRepository.
2017-10-29 17:38:33.793  INFO 18625 --- [  restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.ecommerce.core.repository.jpa.catalog.CategoryRepository.
2017-10-29 17:38:33.794  INFO 18625 --- [  restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.ecommerce.core.repository.jpa.catalog.ProductRepository.

Dans mon fichier App.Java, j'ai les lignes suivantes (ce qui devrait éviter l'ambiguïté)

@EnableJpaRepositories(basePackages = {"com.ecommerce.core.repository.jpa"})
@EnableElasticsearchRepositories(basePackages= {"com.ecommerce.core.repository.elastic"})
@EnableRedisRepositories(basePackages = {"org.springframework.data.redis.connection.jedis"})

Chaque référentiel de données Spring s'étend spécifiquement à son interface de travail (principalement JpaRepository et l'un des ElasticsearchCrudRepository

J'ai lu ceci - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.multiple-modules.types et comme vous pouvez le voir, tout devrait fonctionner sans problèmes.

14
ROZZ

C'est probablement trop tard, mais de toute façon. Il s'agit simplement de messages d'information qui vous aident à comprendre comment les modules de données Spring sont configurés. Par exemple:

 INFO 87518 --- [main] .RepositoryConfigurationExtensionSupport : 
     Spring Data JPA - Could not safely identify store assignment for repository 
          candidate interface com.some.package.MyRepository.

Signifie que le module Spring Data JPA ignorera la classe MyRepository et ne l'utilisera pas.

1
Alexander

Dans l'un des projets, nous avions des messages comme:

Spring Data LDAP - Could not safely identify store assignment for repository candidate interface com.company.xxx.EncryptionKeyRepository.

La solution consistait à ajouter cette ligne dans le fichier application.properties

spring.data.ldap.repositories.enabled=false

C'est pour Spring Data LDAP. Je suppose que c'est similaire pour les autres composants Spring Data.

0
Igor Delac

Vos configurations sont correctes. Le problème est dû à RedisRepositoriesAutoConfiguration. Il enregistre EnableRedisRepositories à plusieurs reprises uniquement avec la configuration par défaut, qui avec basePackages vide.

Pour résoudre le problème, vous pouvez exclure RedisRepositoriesAutoConfiguration par:

@SpringBootApplication(
        exclude = { RedisRepositoriesAutoConfiguration.class }
)
public class MySpringBootApp {

}
0
Hank