Usar o driver R2DBC de código aberto

R2DBC é uma especificação para acesso sem bloqueios a bancos de dados relacionais, com base em fluxos reativos. Seu aplicativo pode usar a conectividade reativa do banco de dados com o Spanner usando o driver R2DBC do Spanner.

Adicionar dependências

Os usuários do Spring Data precisam usar o dialeto Spring Data R2DBC para o Spanner. Todos os outros usuários devem trazer apenas o driver R2DBC do Spanner.

Usar o driver R2DBC do Spanner

Para adicionar apenas o driver R2DBC do Spanner ao seu aplicativo, adicione a seguinte dependência:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>cloud-spanner-r2dbc</artifactId>
  <version>1.3.0</version>
</dependency>

Para mais informações, consulte o repositório do driver do Spanner R2DBC do GitHub (em inglês) e o código de amostra.

Usar o dialeto Spring Data R2DBC no Spanner

Para usuários do Spring Framework, o Spring Data fornece abstrações para simplificar a interação com operações comuns de banco de dados.

Para usar os recursos do Spring Data R2DBC com o Spanner, adicione a seguinte dependência ao seu projeto. O driver é uma dependência transitiva do dialeto.

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>cloud-spanner-spring-data-r2dbc</artifactId>
  <version>1.2.2</version>
</dependency>

Para aprender a usar o modelo e os repositórios, consulte a referência do Spring Data R2DBC. Para ver quais objetos estão configurados automaticamente, consulte a referência do Spring Boot.

Para mais informações, consulte o repositório Spanner Spring Data R2DBC do GitHub (em inglês).

Configuração do Spring Boot

Independentemente da dependência do R2DBC, se o aplicativo for baseado no Spring Boot, o framework tentará configurar e fornecer automaticamente uma fábrica de conexão.

Forneça uma propriedade spring.r2dbc.url para permitir que a configuração automática cuide da configuração da fábrica de conexão R2DBC. O formato é mostrado na seguinte entrada application.properties de exemplo:

spring.r2dbc.url=\
r2dbc:cloudspanner://spanner.googleapis.com:443/projects/${project}/instances/${instance}/databases/${database}

A seguir