我在Spring Data,Spring-Data-Elastisearch和Spring-data-Redis(用于http会话)中使用Spring boot 2。 当我启动应用程序。我收到了
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,你可以看到,一切都应该没有问题。
答案 0 :(得分:3)
因为您要明确启用特定软件包上的存储库。您可以将其包含在application.properties中,以避免出现这些错误:
spring.data.redis.repositories.enabled=false
您也可以对其他存储库执行相同的操作。如果遇到类似的错误:
spring.data.elasticsearch.repositories.enabled=false
spring.data.jpa.repositories.enabled=false
参考: https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html
答案 1 :(得分:1)
可能为时已晚,但无论如何。这只是一条参考消息,可以帮助您了解如何配置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类,并且不会使用它。
答案 2 :(得分:0)
您的配置可以。该问题是由RedisRepositoriesAutoConfiguration
引起的。它仅使用默认配置重复注册EnableRedisRepositories
,而默认配置为空basePackages
。
要解决此问题,您可以通过以下方式排除RedisRepositoriesAutoConfiguration
:
@SpringBootApplication(
exclude = { RedisRepositoriesAutoConfiguration.class }
)
public class MySpringBootApp {
}
答案 3 :(得分:0)
在其中一个项目中,我们收到如下消息:
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组件也是如此。