Use o controlador R2DBC de código aberto

R2DBC é uma especificação para acesso não bloqueador a bases de dados relacionais, com base em Streams reativas. A sua aplicação pode usar a conetividade reativa da base de dados com o Spanner através do controlador R2DBC do Spanner.

Adicione dependências

Os utilizadores do Spring Data devem usar o dialeto Spring Data R2DBC para o Spanner. Todos os outros utilizadores devem usar apenas o controlador R2DBC do Spanner.

Use o controlador R2DBC do Spanner

Para adicionar apenas o controlador R2DBC do Spanner à sua aplicação, 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 GitHub do controlador R2DBC do Spanner e o código de exemplo.

Use o dialeto Spring Data R2DBC para o Spanner

Para os utilizadores do Spring Framework, o Spring Data oferece abstrações familiares para simplificar a interação com operações comuns de bases de dados.

Para usar as funcionalidades do Spring Data R2DBC com o Spanner, adicione a seguinte dependência ao seu projeto. O controlador é 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 saber como usar o respetivo modelo e repositórios, consulte a referência do Spring Data R2DBC. Para ver que objetos são configurados automaticamente para si, consulte a referência do Spring Boot.

Para mais informações, consulte o repositório do GitHub do Spanner Spring Data R2DBC.

Configuração do Spring Boot

Independentemente da dependência R2DBC que usar, se a sua aplicação se basear no Spring Boot, a framework tenta configurar e fornecer automaticamente uma fábrica de ligações para si.

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

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

O que se segue?