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 Spanner usando o driver R2DBC.

Adicionar dependências

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

Usar o driver R2DBC do Spanner

Para adicionar apenas o driver R2DBC do Spanner ao seu aplicativo, adicione o 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 GitHub do driver R2DBC do Spanner e o exemplo de código.

Usar o dialeto Spring Data R2DBC para o 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 recursos do Spring Data R2DBC com o Spanner, adicione a dependência a seguir 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 dele, consulte a Referência do Spring Data R2DBC. Para ver quais objetos são configurados automaticamente para você, consulte a referência do Spring Boot.

Para mais informações, consulte a documentação do Spanner Spring Data R2DBC repositório 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