我使用Spring Boot 2和Spring Data,Spring-Data-Elasticsearch和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,正如你所看到的,一切都应该没有问题。
可能是为时已晚,但无论如何。它只是一条信息性消息,可帮助您了解Spring Data Modules的配置方式。例如:
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类并且不会使用它。
你的配置没问题。问题是由RedisRepositoriesAutoConfiguration
引起的。它只使用默认配置重复注册EnableRedisRepositories
,默认配置为空basePackages
。
要解决此问题,您可以通过以下方式排除RedisRepositoriesAutoConfiguration
:
@SpringBootApplication(
exclude = { RedisRepositoriesAutoConfiguration.class }
)
public class MySpringBootApp {
}
在其中一个项目中,我们有以下消息:
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组件类似。