it-swarm.com.de

Spring - Es wurden mehrere Spring-Datenmodule gefunden, die in den strengen Repository-Konfigurationsmodus wechseln

Ich benutze Spring Boot 2 mit Spring Data, Spring-Data-Elastisearch und Spring-Data-Redis (für http-Sessions). Wenn ich die App starte. Ich empfange

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.

In meiner App.Java-Datei habe ich die folgenden Zeilen (die die Mehrdeutigkeit vermeiden sollten)

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

Jedes Frühjahrsdaten-Repository wird spezifisch für sein Job-Interface erweitert (hauptsächlich JpaRepository und eines von ElasticsearchCrudRepository)

Ich habe folgendes gelesen - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.multiple-modules.types und wie Sie sehen können, alles sollte ohne Probleme funktionieren.

14
ROZZ

Wahrscheinlich ist es zu spät, aber trotzdem. Es handelt sich lediglich um eine Informationsnachricht, die Ihnen hilft, die Konfiguration der Spring-Datenmodule zu verstehen. Beispielsweise:

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

Bedeutet, dass das Spring Data JPA-Modul die MyRepository-Klasse überspringt und nicht verwendet.

1
Alexander

In einem der Projekte hatten wir Nachrichten wie:

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

Die Lösung bestand darin, diese Zeile in die Datei application.properties einzufügen

spring.data.ldap.repositories.enabled=false

Dies ist für Spring Data LDAP. Ich denke, dass es für andere Spring Data-Komponenten ähnlich ist.

0
Igor Delac

Ihre Konfigurationen sind in Ordnung. Das Problem wird durch RedisRepositoriesAutoConfiguration verursacht. Es registriert EnableRedisRepositories wiederholt nur mit der Standardkonfiguration, die mit dem leeren basePackages.

Um das Problem zu lösen, können Sie RedisRepositoriesAutoConfiguration ausschließen durch:

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

}
0
Hank