Spring - 找到多个Spring Data模块,进入严格的存储库配置模式

问题描述 投票:14回答:3

我使用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-boot spring-data spring-data-jpa spring-data-elasticsearch spring-data-redis
3个回答
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类并且不会使用它。


0
投票

你的配置没问题。问题是由RedisRepositoriesAutoConfiguration引起的。它只使用默认配置重复注册EnableRedisRepositories,默认配置为空basePackages

要解决此问题,您可以通过以下方式排除RedisRepositoriesAutoConfiguration

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

}

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组件类似。

© www.soinside.com 2019 - 2024. All rights reserved.