1) O documento apresenta Spring Data Neo4j, um framework que simplifica o acesso a dados armazenados no banco de grafos Neo4j através do Spring Framework.
2) Spring Data cria repositórios que implementam operações CRUD e queries de forma automática, diminuindo muito o código repetitivo de acesso a dados.
3) Spring Data Neo4j mapeia objetos Java para nós e relacionamentos no Neo4j, permitindo consultas por métodos em repositórios de forma declarativa.
Workshop Elasticsearch - Android Dev Conference 2016Thiago Barradas
Workshop apresentado no Android Dev Conference de 2016, um evento da iMasters. O Workshop foi uma apresentação sobre a tecnologia Elasticsearch na versão 2.X e abordando exemplos práticos. A duração da palestra foi de 2h, como era a última e o público pediu, estendemos com mais conteúdo prático. a duração real foi de 2h40.
O documento discute as novidades da plataforma Java EE 7, incluindo o foco em serviços de computação em nuvem, auto provisionamento e multi-tenancy. A especificação Java EE 7 também trará melhorias em APIs existentes como JPA, JSF e JAX-RS e novas APIs como JSON-P e WebSocket. O lançamento está previsto para o primeiro semestre de 2013.
Este documento apresenta Spring Data JPA, um framework que simplifica o acesso a dados persistidos em bancos de dados relacionais através do Java Persistence API (JPA). O framework diminui o código repetitivo de repositórios de dados através de interfaces que estendem funcionalidades CRUD e métodos de consulta definidos por convenção. Ao criar interfaces de repositório, o próprio Spring Data gera implementações que executam consultas ao banco de dados.
O documento discute padrões de projeto para implementação de aplicações corporativas em PHP. Apresenta alguns padrões como Table Data Gateway, Row Data Gateway e Active Record para mapeamento objeto-relacional e discussões sobre identidade, associações e composições no mapeamento de objetos para bancos de dados relacionais. Também fornece códigos de exemplo para ilustrar a implementação destes padrões.
O documento apresenta sobre o framework Spring Data JPA. Resume:
1) O Spring Data JPA simplifica o acesso a dados, diminuindo código repetitivo através da interface JpaRepository, que permite consultas personalizadas com métodos de nomeação;
2) As consultas são mapeadas automaticamente através de convenções de nomes ou queries declaradas;
3) Tópicos avançados incluem auditoria, especificações e QueryDSL para consultas complexas.
O documento apresenta um resumo sobre frameworks para desenvolvimento web em Java. Apresenta a estrutura do curso, dividido em 5 aulas, abordando tópicos como Maven, Spring, Spring Boot, Spring MVC, Spring Data e Spring Security. O objetivo é fornecer uma visão geral das principais ferramentas e frameworks para construção de aplicações web com Java.
Este documento fornece uma introdução aos frameworks web com Python, discutindo conceitos como MVC, templates, ORM e frameworks como Django. Explica como frameworks abstraem detalhes complexos e facilitam o desenvolvimento web.
Workshop Elasticsearch - Android Dev Conference 2016Thiago Barradas
Workshop apresentado no Android Dev Conference de 2016, um evento da iMasters. O Workshop foi uma apresentação sobre a tecnologia Elasticsearch na versão 2.X e abordando exemplos práticos. A duração da palestra foi de 2h, como era a última e o público pediu, estendemos com mais conteúdo prático. a duração real foi de 2h40.
O documento discute as novidades da plataforma Java EE 7, incluindo o foco em serviços de computação em nuvem, auto provisionamento e multi-tenancy. A especificação Java EE 7 também trará melhorias em APIs existentes como JPA, JSF e JAX-RS e novas APIs como JSON-P e WebSocket. O lançamento está previsto para o primeiro semestre de 2013.
Este documento apresenta Spring Data JPA, um framework que simplifica o acesso a dados persistidos em bancos de dados relacionais através do Java Persistence API (JPA). O framework diminui o código repetitivo de repositórios de dados através de interfaces que estendem funcionalidades CRUD e métodos de consulta definidos por convenção. Ao criar interfaces de repositório, o próprio Spring Data gera implementações que executam consultas ao banco de dados.
O documento discute padrões de projeto para implementação de aplicações corporativas em PHP. Apresenta alguns padrões como Table Data Gateway, Row Data Gateway e Active Record para mapeamento objeto-relacional e discussões sobre identidade, associações e composições no mapeamento de objetos para bancos de dados relacionais. Também fornece códigos de exemplo para ilustrar a implementação destes padrões.
O documento apresenta sobre o framework Spring Data JPA. Resume:
1) O Spring Data JPA simplifica o acesso a dados, diminuindo código repetitivo através da interface JpaRepository, que permite consultas personalizadas com métodos de nomeação;
2) As consultas são mapeadas automaticamente através de convenções de nomes ou queries declaradas;
3) Tópicos avançados incluem auditoria, especificações e QueryDSL para consultas complexas.
O documento apresenta um resumo sobre frameworks para desenvolvimento web em Java. Apresenta a estrutura do curso, dividido em 5 aulas, abordando tópicos como Maven, Spring, Spring Boot, Spring MVC, Spring Data e Spring Security. O objetivo é fornecer uma visão geral das principais ferramentas e frameworks para construção de aplicações web com Java.
Este documento fornece uma introdução aos frameworks web com Python, discutindo conceitos como MVC, templates, ORM e frameworks como Django. Explica como frameworks abstraem detalhes complexos e facilitam o desenvolvimento web.
O documento resume as principais características do framework Easy Framework: 1) É um framework MVC para PHP que facilita a construção de aplicações robustas e seguras; 2) Utiliza padrões como ORM e permite fácil integração com bancos de dados; 3) Fornece recursos como cache, segurança, internacionalização e suporte a aplicações RESTful.
Odi tutorial configuração repositórios mestre e trabalhoCaio Lima
Este documento fornece instruções para configurar os repositórios Mestre e de Trabalho do Oracle Data Integrator (ODI) em um banco de dados Oracle para integrar dados de diferentes origens para um destino único. Ele descreve como criar esquemas, usuários, repositórios e conexões para permitir que o ODI execute processos ETL.
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
O documento fornece uma introdução ao framework Django Rest e ao estilo arquitetural REST. Ele discute brevemente a história do Django e suas principais características. Em seguida, explica os principais conceitos do REST como recursos, interface uniforme, comunicação sem estado e cache. Por fim, apresenta exemplos básicos de como construir uma API RESTful usando o Django Rest Framework.
Criando Aplicações .NET com o TheWebMindJaydson Gomes
O TheWebMind é uma plataforma livre desenvolvida em PHP que possui a capacidade de interpretar o conhecimento humano. Baseada no conceito NLP(Natural Language Processing) o TheWebMind possui sua própria linguagem (WML) que é similar a linguagem natural humana. Atualmente o projeto conta conta com 2 módulos nativos que geram código para aplicaçoes PHP e um módulo JAVA em fase de desenvolvimento. O objetivo da palestra é apresentar o conceito do TheWebMind e seu novo módulo baseado na plataforma .NET. O módulo .NET visa automatizar o desenvolvimento de aplicaçoes Web, criando uma estrutura MVC com poucas linhas de código WML.
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
O documento descreve Spring Boot, um framework Java que permite alta produtividade no desenvolvimento de aplicações. Spring Boot utiliza convenções para configuração automática e elimina a necessidade de XML, permitindo foco na lógica de negócio. O documento também explica como construir uma aplicação simples de lista de convidados usando Spring Boot e suas dependências.
O documento apresenta as principais novidades do Entity Framework 4, como o suporte a POCO, melhorias no designer e no mapeamento objeto-relacional, e a integração com LINQ para consultas de objetos.
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) Grupo Treinar
Assistente de cadastro para facilitar a digitação de dados.
Data Module: Módulo de dados para encapsular a lógica de acesso aos dados.
Login: Módulo de login para controle de acesso.
Pesquisa: Módulo para realizar pesquisas avançadas nos dados.
Relatório: Módulo para geração de relatórios customizados.
Importação/Exportação: Módulo para importar e exportar dados em outros formatos.
8. Projeto de Aula
Desenvolvimento de um projeto
O documento apresenta o DeltaSpike, um conjunto de extensões portáteis para CDI que fornecem funcionalidades úteis para aplicações Java que não são suportadas pela especificação CDI. O DeltaSpike inclui módulos para segurança, JPA, JSF, validação de beans, agendamento de tarefas e outros que facilitam o desenvolvimento com CDI. O DeltaSpike não é um framework completo, mas sim um conjunto de ferramentas que estendem as capacidades do CDI.
Este documento apresenta uma solução para analisar dados do Twitter sobre eventos específicos utilizando Adobe Flex e Java. A arquitetura proposta coleta tweets através de buscas no Twitter, armazena as informações em um banco de dados e permite visualizar os dados por meio de uma interface Flex.
O documento apresenta um adendo sobre o framework Spring Framework versão 2.5, com foco em anotações e integração com web. É apresentado o conceito de anotações no Java e no Spring Framework, com exemplos de uso de anotações para injeção de dependências e integração com JSF.
O documento discute dois tópicos: (1) Paradigma de Orientação a Objetos, introduzindo seus conceitos-chave como objeto, classe e encapsulamento; (2) Persistência de dados via JDBC, explicando os tipos de drivers JDBC e fornecendo um exemplo básico de uso do JDBC.
O documento descreve as principais características do framework ASP.NET Core, incluindo sua arquitetura baseada no padrão MVC, suporte a HTTPS, GDPR e injeção de dependência. Detalha também as principais versões lançadas, tipos de projetos suportados e estrutura de pastas de uma aplicação ASP.NET Core.
O documento descreve o WebSphere Application Server (WAS) da IBM, incluindo o que é, demonstrações de instalação e fluxo de funcionamento. Também fornece exemplos de aplicações simples como "Olá Mundo" usando JSP e um WAR para implantação no servidor.
Este documento descreve como acessar um banco de dados remoto de geolocalização usando Android. Ele explica como criar um aplicativo simples que consome uma API gratuita para obter o país, estado e cidade de um endereço IP inserido. O aplicativo usa classes para representar os dados e se conectar à API, exibindo os resultados em tela após o clique em um botão.
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDRodrigo Fernandes
O documento descreve o desenvolvimento de uma plataforma de bookmarking social utilizando Django e TDD. Inclui pesquisa sobre o bookmarking social, apresentação das tecnologias usadas como Django e TDD, e exposição dos resultados obtidos, incluindo a verificação das funcionalidades definidas.
Um framework é uma estrutura de suporte para desenvolvimento de software. CodeIgniter é um framework PHP que oferece funcionalidades prontas, segurança, extensibilidade e economia de tempo. Ele segue o padrão MVC, onde o Model representa os dados, a View a interface e o Controller controla a lógica e fluxo da aplicação.
O documento descreve um curso intermediário de C# que aborda padrões de projeto como Transfer Object, Data Access Object, Singleton e MVC. Também apresenta tópicos como tipos primitivos, estruturas de dados, acesso a dados, formulários, relatórios e projetos de instalação. Explica alguns padrões de projeto com exemplos como TO para transferência de dados, DAO para acesso a dados e Singleton para garantir uma única instância de uma classe. Por fim, descreve os passos para desenvolver um sistema de cadastro de produtos e vendas
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
O documento discute APIs, REST e arquitetura RESTful. Explica que APIs permitem a integração entre sistemas e microserviços estruturam soluções como coleções de serviços levemente acoplados. REST é um estilo de projetar aplicativos da Web fracamente acoplados usando recursos nomeados e métodos HTTP padronizados. Arquitetura RESTful significa que uma aplicação web segue os princípios de design REST.
Implementando APIs REST mais seguras - TDC 2019 - Porto AlegreRenato Groff
O documento discute implementações seguras de APIs REST, cobrindo tópicos como injeção de SQL, acesso indevido a informações e criptografia. Ele fornece exemplos de como evitar problemas de segurança comuns e recomenda estratégias como uso de JWT, armazenamento seguro de credenciais e habilitação do HTTPS.
1. O documento apresenta um portfólio individual de um estudante sobre fundamentos de tecnologia da informação. 2. Ele aborda conceitos de HTML, como tags, imagens, vídeos e links. Também discute linguagens de programação como PHP, Java e ASP.NET, destacando suas características. 3. O objetivo é aprofundar conhecimentos em sistemas de informação, programação, HTML, ética e segurança da informação.
O documento resume as principais características do framework Easy Framework: 1) É um framework MVC para PHP que facilita a construção de aplicações robustas e seguras; 2) Utiliza padrões como ORM e permite fácil integração com bancos de dados; 3) Fornece recursos como cache, segurança, internacionalização e suporte a aplicações RESTful.
Odi tutorial configuração repositórios mestre e trabalhoCaio Lima
Este documento fornece instruções para configurar os repositórios Mestre e de Trabalho do Oracle Data Integrator (ODI) em um banco de dados Oracle para integrar dados de diferentes origens para um destino único. Ele descreve como criar esquemas, usuários, repositórios e conexões para permitir que o ODI execute processos ETL.
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
O documento fornece uma introdução ao framework Django Rest e ao estilo arquitetural REST. Ele discute brevemente a história do Django e suas principais características. Em seguida, explica os principais conceitos do REST como recursos, interface uniforme, comunicação sem estado e cache. Por fim, apresenta exemplos básicos de como construir uma API RESTful usando o Django Rest Framework.
Criando Aplicações .NET com o TheWebMindJaydson Gomes
O TheWebMind é uma plataforma livre desenvolvida em PHP que possui a capacidade de interpretar o conhecimento humano. Baseada no conceito NLP(Natural Language Processing) o TheWebMind possui sua própria linguagem (WML) que é similar a linguagem natural humana. Atualmente o projeto conta conta com 2 módulos nativos que geram código para aplicaçoes PHP e um módulo JAVA em fase de desenvolvimento. O objetivo da palestra é apresentar o conceito do TheWebMind e seu novo módulo baseado na plataforma .NET. O módulo .NET visa automatizar o desenvolvimento de aplicaçoes Web, criando uma estrutura MVC com poucas linhas de código WML.
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
O documento descreve Spring Boot, um framework Java que permite alta produtividade no desenvolvimento de aplicações. Spring Boot utiliza convenções para configuração automática e elimina a necessidade de XML, permitindo foco na lógica de negócio. O documento também explica como construir uma aplicação simples de lista de convidados usando Spring Boot e suas dependências.
O documento apresenta as principais novidades do Entity Framework 4, como o suporte a POCO, melhorias no designer e no mapeamento objeto-relacional, e a integração com LINQ para consultas de objetos.
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) Grupo Treinar
Assistente de cadastro para facilitar a digitação de dados.
Data Module: Módulo de dados para encapsular a lógica de acesso aos dados.
Login: Módulo de login para controle de acesso.
Pesquisa: Módulo para realizar pesquisas avançadas nos dados.
Relatório: Módulo para geração de relatórios customizados.
Importação/Exportação: Módulo para importar e exportar dados em outros formatos.
8. Projeto de Aula
Desenvolvimento de um projeto
O documento apresenta o DeltaSpike, um conjunto de extensões portáteis para CDI que fornecem funcionalidades úteis para aplicações Java que não são suportadas pela especificação CDI. O DeltaSpike inclui módulos para segurança, JPA, JSF, validação de beans, agendamento de tarefas e outros que facilitam o desenvolvimento com CDI. O DeltaSpike não é um framework completo, mas sim um conjunto de ferramentas que estendem as capacidades do CDI.
Este documento apresenta uma solução para analisar dados do Twitter sobre eventos específicos utilizando Adobe Flex e Java. A arquitetura proposta coleta tweets através de buscas no Twitter, armazena as informações em um banco de dados e permite visualizar os dados por meio de uma interface Flex.
O documento apresenta um adendo sobre o framework Spring Framework versão 2.5, com foco em anotações e integração com web. É apresentado o conceito de anotações no Java e no Spring Framework, com exemplos de uso de anotações para injeção de dependências e integração com JSF.
O documento discute dois tópicos: (1) Paradigma de Orientação a Objetos, introduzindo seus conceitos-chave como objeto, classe e encapsulamento; (2) Persistência de dados via JDBC, explicando os tipos de drivers JDBC e fornecendo um exemplo básico de uso do JDBC.
O documento descreve as principais características do framework ASP.NET Core, incluindo sua arquitetura baseada no padrão MVC, suporte a HTTPS, GDPR e injeção de dependência. Detalha também as principais versões lançadas, tipos de projetos suportados e estrutura de pastas de uma aplicação ASP.NET Core.
O documento descreve o WebSphere Application Server (WAS) da IBM, incluindo o que é, demonstrações de instalação e fluxo de funcionamento. Também fornece exemplos de aplicações simples como "Olá Mundo" usando JSP e um WAR para implantação no servidor.
Este documento descreve como acessar um banco de dados remoto de geolocalização usando Android. Ele explica como criar um aplicativo simples que consome uma API gratuita para obter o país, estado e cidade de um endereço IP inserido. O aplicativo usa classes para representar os dados e se conectar à API, exibindo os resultados em tela após o clique em um botão.
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDRodrigo Fernandes
O documento descreve o desenvolvimento de uma plataforma de bookmarking social utilizando Django e TDD. Inclui pesquisa sobre o bookmarking social, apresentação das tecnologias usadas como Django e TDD, e exposição dos resultados obtidos, incluindo a verificação das funcionalidades definidas.
Um framework é uma estrutura de suporte para desenvolvimento de software. CodeIgniter é um framework PHP que oferece funcionalidades prontas, segurança, extensibilidade e economia de tempo. Ele segue o padrão MVC, onde o Model representa os dados, a View a interface e o Controller controla a lógica e fluxo da aplicação.
O documento descreve um curso intermediário de C# que aborda padrões de projeto como Transfer Object, Data Access Object, Singleton e MVC. Também apresenta tópicos como tipos primitivos, estruturas de dados, acesso a dados, formulários, relatórios e projetos de instalação. Explica alguns padrões de projeto com exemplos como TO para transferência de dados, DAO para acesso a dados e Singleton para garantir uma única instância de uma classe. Por fim, descreve os passos para desenvolver um sistema de cadastro de produtos e vendas
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
O documento discute APIs, REST e arquitetura RESTful. Explica que APIs permitem a integração entre sistemas e microserviços estruturam soluções como coleções de serviços levemente acoplados. REST é um estilo de projetar aplicativos da Web fracamente acoplados usando recursos nomeados e métodos HTTP padronizados. Arquitetura RESTful significa que uma aplicação web segue os princípios de design REST.
Implementando APIs REST mais seguras - TDC 2019 - Porto AlegreRenato Groff
O documento discute implementações seguras de APIs REST, cobrindo tópicos como injeção de SQL, acesso indevido a informações e criptografia. Ele fornece exemplos de como evitar problemas de segurança comuns e recomenda estratégias como uso de JWT, armazenamento seguro de credenciais e habilitação do HTTPS.
1. O documento apresenta um portfólio individual de um estudante sobre fundamentos de tecnologia da informação. 2. Ele aborda conceitos de HTML, como tags, imagens, vídeos e links. Também discute linguagens de programação como PHP, Java e ASP.NET, destacando suas características. 3. O objetivo é aprofundar conhecimentos em sistemas de informação, programação, HTML, ética e segurança da informação.
3. AGENDA
Alguns Conceitos
Framework, IoC, DI, banco de grafos e
neo4j
Spring Framework
Alta produtividade em aplicações Java
Spring Data
Simplificando o acesso aos dados
Spring Data Neo4j
Diminuindo o trabalho repetitivo
01
02
03
04
3
Quando Usar
Vantagens e desvantagens05
06Encerrando
Um longo caminho pela frente
6. 6
INVERSÃO DE
CONTROLE
Ou Inversion of Control (IoC) é um padrão onde
as chamadas das ações da aplicação não são
determinados pelo desenvolvedor e o controle é
“invertido” para uma infraestrutura de software.
Também chamado carinhosamente de “Princípio de Hollywood”
(don’t call us, we’ll call you).
7. 7
INJEÇÃO DE
DEPENDÊNCIA
A dependência entre os módulos é controlada
por uma infraestrutura de software responsável
por “injetar” a mesma quando necessária.
@Controller
public class TarefasController {
private final JdbcTarefaDao dao;
@Autowired
public TarefasController(JdbcTarefaDao dao) {
this.dao = dao;
}
@RequestMapping(“adicionaTarefa”)
public void adiciona(Tarefa tarefa) {
dao.adiciona(tarefa);
// ...
}
}
8. 8
BANCO DE
GRAFOS
Armazena estruturas em formato de grafos (nó e
relacionamento), onde cada nó conhece o nó
adjacente permitindo aumentar o número de
nós sem perder performance na busca.
Tem
Filme
Roteiro Roteirista
Ator
Data de
Estréia
Atuou
Participou
TemTem
Escrito por
9. 9
NEO4J ‘O’
BANCO DE
GRAFOS
Criado pela Neo Technology em 2003 se tornou o
principal banco de grafos. É código aberto escrito
sobre a JVM (Scala e Java), é escalável, ACID tem
suporte a alta disponibilidade (enterprise). Possui
modo standalone e embedded, linguagem de
consulta própria (Cypher) e interface REST.
4J
11. 11
O QUE É ?
Framework open source em Java criado
por Rod Johnson que utiliza os
conceitos de inversão de controle e
injeção de dependência para simplificar
o desenvolvimento de aplicações
utilizando Plain Old Java Objects
(POJOs) e interfaces.
CONTAINER SPRING
No núcleo do Spring está um container que injeta (DI) e
gerencia o ciclo de vida das dependências (IoC).
CONFIGURAÇÃO FLEXÍVEL
O Spring permite que as configurações sejam por
anotações, xml, convenção ou programaticamente.
NÃO INTRUSIVO
A construção do Spring foi realizada para que a lógica de
domínio geralmente não tenha dependências do
framework.
VÁRIOS MÓDULOS DISPONÍVEIS
Além de ser compatível com o JEE o Spring possui
diversos módulos para suprir as mais diversas
necessidades.
12. 12
COMO OBTER
INFORMAÇÕES?
No endereço spring.io/projects pode-se
encontrar de forma organizada, todas as
informações necessárias para configurar e iniciar
a construção de uma aplicação utilizando os
módulos do Spring
14. 14
SPRING DATA
SPRING DATA
MONGODB
MongoRepository
MongoTemplate
SPRING DATA JPA
JpaRepository
SPRING DATA
NEO4J
GraphRepository
Neo4jTemplate
SPRING DATA
...
Embedded REST
JPA
JDBC
RDBMS
Mongo Java Driver
MongoDB Neo4J ...
SIMPLIFICAR
O projeto Spring Data tem como objetivo
simplificar as operações de acesso a dados
nas aplicações, diminuindo o código
escrito e mantendo a integração com todo
ambiente Spring já existente.
15. 15
MODELO DE PROGRAMAÇÃO
DO SPRING DATA
02REPOSITORY
Abstração principal do
modelo Spring Data,
gerencia a classe de
domínio e define as
operações de acesso aos
dados.
03QUERY METHODS
Métodos de consulta que
possuem uma convenção de
nome o qual o Spring Data
fornece uma implementação
em tempo de execução.
01INTERFACES
A maior parte das
implementações são
realizadas pelo Spring Data,
o desenvolvedor irá se
ocupar mais com as
definições de interfaces.
04TEMPLATES
O Spring Data fornece vários
templates (modelos) para
cuidar da alocação de
recursos e tradução de
exceções.
16. 16
PRINCIPAIS
INTERFACES
public interface CrudRepository<T,ID extends Serializable> extends Repository {
<S extends T> S save(S entity);
T findOne(ID primaryKey);
Iterable<T> findAll();
Long count();
void delete(T entity);
boolean exists(ID primaryKey);
}
REPOSITORY
Interface central da abstração do Spring Data. É uma interface de marcação para o spring poder obter
os tipos que irá trabalhar e para ajudar o desenvolvedor a descobrir outras interfaces.
public interface Repository<T,ID extends Serializable> {}
CRUD REPOSITORY
Interface que provê os métodos para as operações de Create Read Update e Delete (CRUD). Estende a
interface Repository e assim como a interface pai ela recebe o tipo da entidade e o tipo do campo id da
entidade.
17. 17
PRINCIPAIS
INTERFACES
PAGING AND SORTING REPOSITORY
Extendendo a CrudRepository existe a PagingAndSortingRepository que adiciona métodos para efetuar
facilmente as operações de paginação.
public interface PagingAndSortingRepository<T,ID extends Serializable> extends
CrudRepository<T, ID> {
Iterable<T> findAll(Sort sort);
Page<T> findAll(Pageable pageable);
}
20. 20
SPRING DATA
NEO4J 4
A partir da versão 4 a
estrutura do framework
foi dividida e obteve
mais flexibilidade.
@Classe Java Anotações
@Node
Entity
@Graph
Id
Entidade
Neo4JTransactionManager Neo4JRepository
Session
Spring Data Neo4J (SDN)
SessionFactory Configuration
Spring Data Neo4J (SDN)
Neo4J Bolt Driver
Neo4J HTTP
Driver
Neo4J Embedded
Driver
Banco de Dados Gráfico Neo4J
Bolt HTTP Java
21. 21
Exemplo
SessionFactory sessionFactory = new SessionFactory("movies.domain");
Session session = sessionFactory.openSession();
Movie movie = new Movie("The Matrix", 1999);
Actor keanu = new Actor("Keanu Reeves");
keanu.actsIn(movie);
Actor carrie = new Actor("Carrie-Ann Moss");
carrie.actsIn(movie);
session.save(movie);
@NodeEntity
public class Tarefa {
@GraphId
private Long id;
private String name;
@Relationship(type = "ACTS_IN", direction = "OUTGOING")
private Set<Movie> movies = new HashSet<>();
}
Movie matrix = session.load(Movie.class,
movie.getId());
for(Actor actor : matrix.getActors()) {
System.out.println("Actor: " +
actor.getName());
}
22. 22
DAO
SIMPLES
Utilizando a abordagem tradicional do
DAO.
MODEL
public class User{
private String name;
//Get e Sets
}
DAO
public class UserDao{
private Connection con;
private Statement comando;
public List<User> findAll() {
List<User> result = new ArrayList<User>();
ResultSet rs;
try {
rs = comando.executeQuery("MATCH (n:User) RETURN
n.name");
while (rs.next()) {
User temp = new User();
temp.setName(rs.getString("n.name"));
result.add(temp);
}
return result ;
}
...
23. 23
SPRING
DATA
NEO4J
Ao criar uma interface que estende a
interface Repository, o próprio Spring
Data se encarrega de implementar os
métodos.
ENTITY
@NodeEntity
public class Movie {
@GraphId Long id;
String title;
Person director;
@Relationship(type="ACTS_IN", direction =
Relationship.INCOMING)
Set<Person> actors;
@Relationship(type = "RATED")
List<Rating> ratings;
}
REPOSITORY
public interface MovieRepository extends
Repository<Movie, Long> {}
24. 24
@NoRepositoryBean
interface BaseRepository<T, ID extends Serializable> extends Repository<T, ID> {
T findOne(ID id);
T save(T entity);
}
interface PessoaRepository extends BaseRepository<User, Long> {
User findByEmail(Email email);
}
REPOSITORY
CUSTOMIZADO
É possível personalizar os repositórios criando novos
métodos
25. 25
QUERY
METHODS
São métodos de busca declarados
na interface do repositório que são
examinados e interpretados pela
infraestrutura do Spring Data para
gerar as consultas.
public interface PersonRepository extends Repository<User, Long> {
List<Person> findByName(String name);
}
MATCH (:Actor {name:{name}}) return m
26. 26
QUERY
LOOKUPS
É como o Spring Data realiza a
busca das queries. Atualmente
existem três formas.
CREATE
01
USE_DECLARED_QUERY
02
CREATE_IF_NOT_FOUND
03
<repositories query-lookup-strategy="use-declared-query"/>
27. 27
CREATE
Quebra os query methods pelo
prefixo e o nome das propriedades
Keyword Sample Cypher snippet
And findByAgeAndMarried MATCH (person:Person)
WHERE person.age = {0} AND
person.married = {1}
RETURN person
Or findByAgeOrMarried MATCH (person:Person)
WHERE person.age = {0} OR
person.married = {1}
RETURN person
29. 29
XML CLASSE JAVA
<named-query name="User.findByLastname">
<query>MATCH (n) WHERE id(n)={0} RETURN n</query>
</named-query>
@NodeEntity
public class Movie {
@GraphId
private Long id;
private String title;
private int released;
...
REPOSITORY
@NodeEntity
public class MovieRepository extends Neo4jRepository<Movie> {
@Query(name = "MATCH (n) WHERE id(n)={0} RETURN n")
Movie getMovieFromId(Integer idOfMovie);
}
USE_DECLARED_QUERY
Utiliza apenas queries declaradas
33. 33
VANTAGENS
Suporte a paginação, execução dinâmica de
consultas e possibilidade de utilizar código
customizado para acessar a base de dados.
Sofisticado suporte para criação de
repositórios que diminui muito código
repetitivo.
As consultas são compiladas na inicialização
do contexto Spring, facilitando a detecção
de erros de sintaxe.
Suporte a alta disponibilidade e a eventos de
persistência.
34. 34
DESVANTAGEN
S
Nomes dos métodos dos repositórios podem
se tornar grandes em longas ou complicadas
consultas.
Consulta nativa é mais performática.
A Neo4j API também é mais
performática.
36. 36
FONTES
SITES
● InfoQ - https://www.infoq.com/br/articles/spring-data-intro
Artigo - Spring Data: A solução mais geral para persistência?
Acessado em 09/2016
● Spring Data Neo4j reference -
http://docs.spring.io/spring-data/data-neo4j/docs/4.2.1.RELEASE/reference/html/
Acessado em 09/2016
● Spring Framework reference -
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/
Acessado em 09/2016