BT

Spring Data: novas versões para Key Value, Data Graph e extensões JDBC

por Rogério Rondini em 12 Abr 2011 |

Na última semana, a Spring Source lançou novidades em três dos diversos subprojetos que fazem parte do Spring Data: Spring Data Key Value 1.0.0.M3, Spring Data Graph 1.0.0.RC1 e Spring Data JDBC 1.0.0.M1.

O Spring Data é um projeto recente, lançado oficialmente em outubro de 2010, que tem como principal objetivo oferecer suporte a novas tecnologias de acesso a dados, tais como MapReduce, bancos de dados não-relacionais e acesso a dados em nuvem. Adicionalmente, o Spring Data oferece suporte a extensões específicas a bancos de dados relacionais.

Spring Data Key Value

O Spring Data Key Value (Redis + Riak) 1.0.0.M3 foi lançado em 6 de abril e traz as seguintes características:

  • Suporte para um novo cliente Redis chamado RJC
  • Novo mecanismo de mapeamento Objeto-Hash e Hash-Objeto
  • Hierarquia de exceções
  • Suporte dedicado aos padrões SORT e SORT/GET

Key Value é uma das possibilidades de implementação de armazenamento que seguem o modelo NoSQL. O Spring Data Key Value oferece suporte a duas implementações de Key Value, o Riak v0.13 e o Redis v2.

O fragmento de código a seguir ilustra a conexão com o Redis, utilizando o modelo Spring de injeção de dependências. No exemplo abaixo foi utilizado o Jedis, um cliente Java para o Redis suportado pelo Spring Data Key Value.

<bean> 
  id="jedisConnectionFactory"
  class="org.springframework.data.keyvalue.redis.connection.jedis.JedisConnectionFactory"/>

Spring Data Graph

O Spring Data Graph 1.0.0.RC1, com suporte ao framework Neo4J, foi lançado em 5 de abril. Dentre as características incluídas nessa versão, destaca-se o suporte a clientes REST, implementado para consumir os serviços REST do Neo4J. O Neo4J é uma implementação de “Graph Database”, um banco de dados NoSQL que armazena as estruturas de dados através de grafos. Ele armazena objetos em estruturas flexíveis, diferentemente do modelo estático baseado em tabelas dos BDs relacionais.

O Spring Data Graph oferece anotações para que objetos Java sejam armazenados como nós de um grafo, como no exemplo a seguir.

@NodeEntity public class Movie { ... }

A classe DirectGraphRepositoryFactory deve ser injetada na aplicação seguindo o modelo Spring de injeção de dependências, por exemplo, com Autowired:

@Autowired DirectGraphRepositoryFactory graphRepositoryFactory;

Spring Data JDBC

O Spring Data JDBC oferece suporte a extensões de JDBC específicas para cada banco relacional. Na versão 1.0.0.M1, lançada em 1 de abril , foram incorporadas todas as características do “Advanced Pack for Oracle Database v 1.1.0”, antes disponível apenas como um adicional para quem possui assinatura. Principais novidades:

  • Suporte ao Oracle RAC “Fast Connection Failover”; com isso, aplicações Spring contarão com detecção de falhas transparente quando um nó falhar
  • Suporte a tipos de dados XML
  • Tipos de dados avançados, como STRUCT e ARRAY

O exemplo de configuração a seguir mostra uma ideia de como funciona o Spring Data JDBC com suporte a Fast Connection Failover. É possível observar a URL de conexão apontando para duas instâncias do Oracle RAC e o Fast Connection Failover habilitado:

 <orcl:pooling-datasource id="racDataSource" url="jdbc:oracle:thin: 
@(description=(address_list=(address=(host=rac1)(protocol=tcp)(port=1521))
(address=(host=rac2)(protocol=tcp)(port=1521)))(connect_data=(service_name=racdb1)))"
properties-location="classpath:orcl.properties" fast-connection-failover-enabled="true" ONS-configuration="rac1:6200,rac2:6200"/>

O Spring Data, apesar de recente, oferece boa documentação para quem deseja iniciar na utilização de bases de dados NoSQL, além de oferecer recursos específicos de JDBC. O projeto está a pleno vapor e ainda há muitas novidades por vir.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT