Spring - Несколько Spring Найдены модули данных, вход в режим конфигурации жесткого репозитория

Я использую Spring boot 2 с Spring Data, Spring -Data-Elastisearch и Spring -data-Redis (для сеансов http). Когда я запустил приложение. Я получаю

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.

В моем файле App.java у меня есть следующие строки (которые должны избегать двусмысленности)

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

Каждый репозиторий данных Spring расширяется для своего интерфейса работы (в основном JpaRepository и один из ElasticsearchCrudRepository

Я читал это - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.multiple-modules.types, и, как вы можете видеть, все должно работать без проблем.

Ответ 1

Наверное, уже поздно, но все равно. Это просто информационные сообщения, которые помогут вам понять, как настроены модули Spring Data. Например:

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

Означает, что модуль Spring Data JPA пропустит класс MyRepository и не будет его использовать.

Ответ 2

С вашими настройками все в порядке. Проблема вызвана RedisRepositoriesAutoConfiguration. Он регистрирует EnableRedisRepositories несколько раз только с конфигурацией по умолчанию, которая с пустыми basePackages.

Чтобы решить эту проблему, вы можете исключить RedisRepositoriesAutoConfiguration образом:

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

}

Ответ 3

В одном из проектов у нас были такие сообщения:

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

Решением было добавить эту строку в файл application.properties

spring.data.ldap.repositories.enabled=false

Это для Spring Data LDAP. Я думаю, это похоже на другие компоненты Spring Data.