O módulo Spring Data Cloud Spanner ajuda a usar o Cloud Spanner em qualquer aplicativo Java criado com o Spring Framework.
Como todos os módulos Spring Data, o Spring Data Cloud Spanner fornece um modelo de programação baseado em Spring que mantém as garantias de consistência e escalonabilidade do Cloud Spanner. Os recursos dele são parecidos com os do Spring Data JPA e do Hibernate ORM, com anotações desenvolvidas para o Cloud Spanner.
Se você já estiver familiarizado com o Spring, o Spring Data Cloud Spanner facilitará o trabalho com o Cloud Spanner no seu aplicativo e reduzirá a quantidade de códigos necessários para escrever.
Esta página explica como adicionar o Spring Data Cloud Spanner a um aplicativo Java. Para informações detalhadas sobre o módulo, consulte as referências do Spring Data Cloud Spanner.
Como instalar o módulo
Se você usar o Maven, adicione a Lista de materiais do Spring Cloud GCP (BOM, na sigla em inglês) e Spring Data Cloud Spanner ao arquivo pom.xml
. Essas dependências fornecem os componentes do Spring Data Cloud Spanner ao Spring ApplicationContext
:
Também é necessário criar uma conta de serviço e usar a chave da conta de serviço para autenticar no Google Cloud.
Para mais informações, consulte as instruções para configurar um ambiente para desenvolvedores Java. Não é preciso instalar a biblioteca de cliente do Google Cloud para Java. O Spring Boot Starter instala a biblioteca de cliente automaticamente.
Como configurar o módulo
Esta seção descreve algumas das configurações mais usadas do Spring Data Cloud Spanner. Para uma lista completa de configurações, consulte a documentação de referência.
Especifique uma instância e um banco de dados
Especifique a instância e o banco de dados do Cloud Spanner aos quais seu aplicativo se conecta.
Para especificar a instância padrão e o banco de dados, defina as propriedades de configuração a seguir no seu aplicativo:
Propriedade | Descrição |
---|---|
spring.cloud.gcp.spanner.project-id |
Opcional. O ID do projeto do Google Cloud. Substitui o valor de spring.cloud.gcp.config.project-id . |
spring.cloud.gcp.spanner.instance-id |
O código da instância do Cloud Spanner. |
spring.cloud.gcp.spanner.database |
O banco de dados para se conectar. |
Como modelar dados do Cloud Spanner
Com o Spring Data Cloud Spanner, é possível usar objetos Java antigos simples (POJOs) para modelar os dados armazenados nas tabelas do Cloud Spanner.
Para cada tabela no seu banco de dados, declare uma entidade que representa um registro nessa tabela. Use anotações para mapear a entidade e as propriedades dela para uma tabela e colunas.
Use as anotações abaixo para modelar relações simples entre entidades e tabelas:
Anotações de entidade | |
---|---|
@Column(name = "columnName")
|
Opcional. Mapeia a propriedade para uma coluna específica na tabela do Cloud Spanner, substituindo a estratégia de nomeação que mapeia os nomes automaticamente.
Ao omitir essa propriedade, a estratégia de nomeação padrão do Spring Data Cloud Spanner mapeia os nomes de propriedade em |
@Embedded |
Indica que a propriedade é um objeto incorporado que pode conter componentes de uma chave primária. Se a propriedade for usada realmente na chave primária, você também deverá incluir a anotação |
|
Indica que uma propriedade contém uma lista de linhas que foram intercaladas com a linha atual.
Por padrão, o Spring Data Cloud Spanner busca as linhas intercaladas na criação da instância. Para buscar as linhas de maneira mais cômoda, quando acessar a propriedade, use
Exemplo: se uma entidade |
@NotMapped |
Indica que uma propriedade não está armazenada no banco de dados e tem que ser ignorada. |
|
Indica que a propriedade é um componente da chave primária e identifica a posição dessa propriedade na chave, começando em 1. O Por exemplo: |
@Table(name = "TABLE_NAME") |
A tabela que a entidade modela. Cada instância da entidade representa um registro na tabela. Substitua
Exemplo: |
Se você precisar modelar relações mais complexas, consulte a referência do Spring Data Cloud Spanner para mais detalhes sobre outras anotações compatíveis com o módulo.
Os exemplos a seguir mostram uma maneira de modelar as tabelas Singers
e Albums
para o Spring Data Cloud Spanner:
- Para entidades
Singer
, o exemplo inclui uma propriedadealbums
com uma anotação@Interleaved
. Essa propriedade contém uma lista de álbuns que são intercalados com a entidadeSinger
. O Spring Data Cloud Spanner preenche essa propriedade automaticamente. - Para entidades
Album
, o exemplo inclui uma propriedaderelatedAlbums
que não é armazenada no Cloud Spanner.
Como consultar e modificar dados
Para consultar e modificar dados com o Spring Data Cloud Spanner, adquira um bean SpannerTemplate
, que implementa SpannerOperations
. SpannerTemplate
fornece métodos para realizar consultas SQL e modificar dados com instruções de linguagem de manipulação de dados (DML). Você também pode usar esse bean para acessar a API de leitura e a API de mutação para o Cloud Spanner.
Além disso, é possível estender a interface SpannerRepository
para encapsular toda a lógica do aplicativo que consulta e modifica dados no Cloud Spanner.
As seções a seguir explicam como trabalhar com SpannerTemplate
e SpannerRepository
.
Como adquirir um bean de modelo
Use a anotação @Autowired
para adquirir um bean SpannerTemplate
automaticamente. Assim, é possível usar SpannerTemplate
em toda a classe.
O exemplo a seguir mostra uma classe que adquire e usa o bean:
É possível usar o bean SpannerTemplate
para executar transações somente leitura e transações de leitura e gravação. Além disso, é possível usar a anotação @Transactional
para criar transações declarativas.
Como adquirir um bean de repositório
Caso você use um SpannerRepository
, poderá adotar a anotação @Autowired
para adquirir um bean que implementa a interface do seu repositório. Um repositório inclui métodos para executar funções Java como transações somente leitura e transações de leitura e gravação. Para operações de nível inferior, é possível conseguir o bean de modelo que o repositório usa.
Os exemplos a seguir mostram a interface de um repositório e uma classe que adquire e usa o bean:
Como gerenciar o Cloud Spanner
É possível adquirir um bean SpannerDatabaseAdminTemplate
para obter informações sobre os bancos de dados do Cloud Spanner, atualizar um esquema com uma instrução de linguagem de definição de dados (DDL) ou concluir outras tarefas administrativas.
Use a anotação @Autowired
para adquirir o bean automaticamente. Assim, é possível usar SpannerDatabaseAdminTemplate
em toda a classe.
O exemplo a seguir mostra uma classe que adquire e usa o bean:
A seguir
- Primeiros passos com o Spring Cloud GCP.
- Saiba mais sobre como usar o Spring Data Cloud Spanner nos seus aplicativos.
- Registre um problema no GitHub para relatar um bug ou fazer uma pergunta sobre o módulo.
- Mais informações sobre o suporte do Spring Framework no Google Cloud.
- Teste um codelab para implantar e executar um aplicativo que usa o Spring Cloud GCP.