Spring+GCP Datastore:我使用存储库,并希望在开发或测试期间将其配置为使用数据存储模拟器

Posted

技术标签:

【中文标题】Spring+GCP Datastore:我使用存储库,并希望在开发或测试期间将其配置为使用数据存储模拟器【英文标题】:Spring+GCP Datastore: I use repository and want to configure it to use datastore emulator during development or test 【发布时间】:2019-06-26 02:43:54 【问题描述】:

我通过这一行启动了模拟器:

gcloud beta emulators datastore start --host-port=localhost:8484 --no-store-on-disk

当然,我可以定义 com.google.cloud.datastore.Datastore 并通过以下行创建实例:

            return DatastoreOptions.newBuilder()
                .setHost("http://localhost:8484")
                .setProjectId("analytics-project")
                .build()
                .getService();

但是如何强制 spring-gcp 存储库使用模拟器数据存储?

存储库类示例:

import org.springframework.cloud.gcp.data.datastore.repository.DatastoreRepository;

import java.util.List;

public interface AnalyticsUserRepo extends DatastoreRepository<AnalyticsUser, String> 

    List<AnalyticsUser> findByEmail(String email);


【问题讨论】:

【参考方案1】:

您必须将这些行添加到您的 application.properties 文件中:

spring.cloud.gcp.datastore.project-id=YOUR_PROJECT_ID
spring.cloud.gcp.datastore.emulator.enabled=true
spring.cloud.gcp.datastore.emulator.port=YOUR_DATASTORE_EMULATOR_PORT

【讨论】:

以上是关于Spring+GCP Datastore:我使用存储库,并希望在开发或测试期间将其配置为使用数据存储模拟器的主要内容,如果未能解决你的问题,请参考以下文章

在不覆盖实时数据库的情况下查询 GCP Datastore 备份

以增量方式将数据从 GCP Datastore 移动到 BigQuery 的最佳做法

GCP Datastore Python - InvalidArgument:400 非事务性提交可能不包含影响同一实体的多个突变

使用 Google Cloud Datastore API 的 Spring Boot 无法运行

GCP 数据存储模拟器不会安装在 OpenJDK 10 上

比较 GCP 数据存储区查询性能