SlideShare uma empresa Scribd logo
Frameworks para
Desenvolvimento web em
Java
André Luiz Forchesatto
Apresentação
● Cursando MBA em Liderança, Inovação e Gestão 3.0
PUC-RS
● Especialista em Ciência da Computação pela UFSC;
● Graduado em Tecnologia em Informática pela Unoesc;
● Atuação
○ Sócio Camtwo Sistemas;
○ CEO Clínica nas nuvens;
○ Desenvolvedor Java desde 2002;
○ Professor;
● Contato
○ andreforchesatto@gmail.com
○ github.com/forchesatto
○ slideshare.net/andreforchesatto
Ementário
Evolução do desenvolvimento de aplicações WEB. Introdução
ao Desenvolvimento RAD para WEB. Visão geral das
ferramentas e frameworks para desenvolvimento de aplicações
WEB. Gerenciamento de dependências e deploy com maven.
Injeção de dependência com Spring ou CDI. Padrão de
Desenvolvimento WEB Action Based e Component Based.
Planejamento
● Aula 01
○ Maven
○ Injeção de dependência
○ Introdução ao Spring
○ Spring IoC
○ Introdução Spring Boot
○ Introdução Spring Data
○ Spring Test
● Aula 02
○ Spring MVC
○ Spring Rest
○ Spring Data
○ Spring Web com Thymeleaf

Recomendado para você

Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2

Este documento apresenta um resumo sobre: 1) Uma apresentação sobre desenvolvimento web com Java Server Faces (JSF); 2) A história e conceitos principais de JSF como um framework MVC baseado em componentes; 3) Exemplos de exercícios para criação de formulários e projetos básicos usando JSF.

Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?

Como escolher o Framework Java para web? Comparações entre os frameworks: Java, Web, Struts2, Spring MVC, JSF.

javajugjsf
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys

O documento apresenta a tecnologia JavaServer Faces (JSF) e demonstra a aplicação ScrumToys desenvolvida com JSF 2.0. Apresenta os benefícios e novidades da JSF 2.0 como suporte a AJAX, templates baseados em XHTML e melhorias na navegação. Por fim, demonstra a aplicação ScrumToys e responde perguntas.

lingugiljsfjava ee
Planejamento
● Aula 03
○ Spring Web thymeleaf
● Aula 04
○ Spring Security
● Aula 05
○ Spring cloud
○ Trabalho Final
Maven
Problema Gestão de Dependência
Problema Gestão de Dependência
● Múltiplos Componentes
● Componentes dependem de outros componentes
● Múltiplas versões

Recomendado para você

Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO

O documento discute os padrões arquitetônicos MVC, JavaBeans e DAO. MVC separa uma aplicação em três partes - Model, View e Controller. JavaBeans são componentes reutilizáveis que seguem convenções como ter getters/setters. DAO é um padrão para acesso a dados que encapsula operações CRUD em interfaces genéricas.

modelmvcjavabeans
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF

O documento apresenta um minicurso sobre desenvolvimento baseado em componentes com Java Server Faces (JSF). Apresenta conceitos básicos de JSF, configuração de ambientes, ciclo de vida, componentes, validação e conversão de dados. Inclui demonstrações de código e práticas passo-a-passo para construção de uma aplicação simples de cadastro de pedidos.

jsf java
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor

O documento apresenta uma palestra sobre o framework web Vraptor para desenvolvimento Java. Aborda as vantagens do Vraptor como produtividade, convenções, injeção de dependência e suporte a REST. Também discute os principais conceitos do MVC e como iniciar um projeto com Vraptor.

javavraptorflisol
Inferno dos Jars
Conceito
● Ferramenta para gerenciamento, construção e
implantação de projetos;
● Simplifica o processo de Build
● Organiza e compartilha as Libs dos projetos
● Fornece orientação para as melhores práticas
de projeto e programação
● Gera relatórios e documentação sobre o
projeto
Características
● Builds automatizados
● Ciclo de vida bem definido (lifecycle)
● Repositório de artefatos
● Gestão de Dependências
● Definição de Projetos declarativa (POM)
● Plugins como peça fundamental
● Quickstart rápido de projetos
● Site de projetos facilmente acessível
● Integração com controle de versão
Project Object Model (POM)
● Definições do projeto
● Configurações de dependências de
componentes(lib)
● Customizações (definições de plugin,
repositorios, etc..)
● Herança e agregação de projetos

Recomendado para você

JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java

O documento apresenta uma introdução às tecnologias web Java como HTML, Servlets, JSP e frameworks como Struts e JSF. Discute brevemente a história e características desses frameworks de forma a compará-los, com foco em suas abordagens baseadas em ações ou componentes.

jeewicketstruts
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys

O documento apresenta as principais características e novidades do JavaServer Faces 2.0 e demonstra a aplicação ScrumToys como exemplo prático.

ee6mojarra
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem

O documento resume a evolução da linguagem Java desde sua criação em 1995 até a versão mais recente, o Java 8. Em 3 frases: (1) Java evoluiu de uma linguagem orientada a objetos pura para adotar novos paradigmas como o funcional; (2) Novas versões troux

Estrutura Mínima (POM)
Propriedades (POM)
● groupId (nome do package - empresa)
● artifactId (identificador do projeto)
● packaging (pom, war, jar, etc. - default jar)
● version (versão de release ou SNAPSHOT)
Dependências
<project>
...
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>
compile (default)
provided
runtime
test
system
http://search.maven.org/

Recomendado para você

Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring

Apresentação da disciplina de Projeto Detalhado de Software do curso de Engenharia de Software da UFC. A Apresentação fala sobre a motivação para criação e como é estruturado o framework Spring.

javainversão de controleinjeção de dependência
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2

Este documento apresenta um cronograma para desenvolver um blog utilizando o framework Zend Framework 2 (ZF2). Ele inclui instruções para configurar o ambiente de desenvolvimento, criar os módulos e componentes do blog, como models, controllers e views, e implementar funcionalidades como autenticação, permissões e comentários.

phpphpunitzend framework 2
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica

O documento apresenta uma palestra sobre tecnologias web como WebStandards, ASP.Net MVC, jQuery, Ajax e JSON. Inclui definições, explicações e demonstrações dos principais conceitos e funcionalidades dessas tecnologias.

jquery aspnetmvc codificando web
Buscando libs
Herança de projetos
● Permite herdar as caracteristicas de um
projeto pai, como libs, propriedades e build.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
Tag Build
Tag do pom.xml onde definimos parâmetros de
compilação, como versão do Java, diretórios
de resources e vários outros plug-ins que
podem ser utilizados
Tag Build

Recomendado para você

Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)

Este documento descreve um minicurso sobre desenvolvimento de aplicações web com Java. O curso irá ensinar sobre Java, JSF 2.0, padrões de projeto, PrimeFaces, persistência de dados com EclipseLink/JPA e ferramentas como Maven e IDEs. Os alunos irão criar uma agenda telefônica web usando esses conceitos para aprender sobre desenvolvimento Java web.

desenvolvimentojavapalmas
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2

O documento descreve como usar MongoDB com Zend Framework 2 para armazenar dados no lugar do componente Zend\Db. O documento introduz MongoDB e discute como instalá-lo e conectá-lo do PHP, bem como operações básicas como inserir, procurar, atualizar e remover documentos. Finalmente, o documento menciona o módulo DoctrineMongoODMModule para integrar MongoDB com Zend Framework 2.

nosqlcamada de abstraçãozend\db
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok

Apresentação sobre Gradle, Spring Boot, Spring Web MVC, HATEOAS e LOMBOK

gradlejavaspring
Instalação
● Devemos ter uma instalação quando
desejamos rodar os comandos pelo prompt.
● Linux
○ sudo apt-get install maven2
● Windows
○ Efetuar o download
(http://maven.apache.org/download.html)
○ Descompactar em uma pasta
○ Criar uma variável de ambiente M2_HOME com o
caminho da pasta
○ Adicionar no classpath esta variável com o bin
Testando
● Testar no console mvn -v
● Criar um projeto simples no console:
mvn archetype:create
-DgroupId=br.com.camtwo
-DartifactId=exemplo
● Verificar se criou a estrutura de diretórios
● Verificar se criou a pasta .m2
Estrutura Projeto Maven
Novo projeto: Maven + Eclipse
File->New Project

Recomendado para você

jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2

O documento discute o desenvolvimento de aplicações web modernas usando ASP.NET MVC e jQuery. Ele explica como essas tecnologias se complementam, com ASP.NET MVC fornecendo uma estrutura MVC no backend e jQuery facilitando manipulação do DOM e Ajax no frontend.

jquery aspnetmvc webstandards
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC

O documento fornece uma introdução ao framework ASP.NET MVC, descrevendo suas principais características e componentes, como Models, Views e Controllers. O autor também discute abordagens de desenvolvimento como Code First e Database First e ferramentas como Razor e HTML Helpers.

asp.net mvcmicrosoftsoftware
Django
DjangoDjango
Django

O documento descreve o framework Django para desenvolvimento web. Ele fornece desenvolvimento rápido com menos código através de recursos como mapeamento automático de URLs, validação e renderização de formulários, integração com bancos de dados e templates para separação de conteúdo e apresentação. Django também incentiva o design orientado a objetos e código limpo e legível.

flisolmaringadjango
Novo projeto: Maven + Eclipse
Novo projeto: Maven + Eclipse
Build no projeto
Spring framework

Recomendado para você

Como utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicaçõesComo utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicações

Spring boot

Java Seminar
Java SeminarJava Seminar
Java Seminar

1. O documento descreve um seminário sobre Java oferecido pela Sun Microsystems, apresentando os cursos, palestrantes e agenda do evento. 2. A tecnologia Java é introduzida, destacando suas origens, conceitos como orientação a objetos, portabilidade, segurança e desempenho. 3. Instruções para instalação do Java Development Kit (JDK) são fornecidas para preparar os participantes para o desenvolvimento de aplicativos Java.

javaappletsun microsystem
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos

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.

spring boot
O que é?
● Surgiu em 2003
● Framework open-source criado por Rod
Johnson
● Container leve com inversão de controle e
programação orientada a aspecto
● Criado para simplificar o desenvolvimento
enterprise
● É um projeto guarda-chuva para vários outros
Filosofia do framework
● Fornecer escolha em todos os níveis
● Acomodar diversas perspectivas.
● Manter forte compatibilidade com versões
anteriores
● Preocupe-se com o design da API.
● Defina altos padrões de qualidade de código.
Todos os componentes do sistema
são gerenciados pelo Spring
utilizando IoC e Injeção de
dependência.
"A primeira pergunta a ser respondida é:
como obter um objeto sem depender
direta ou indiretamente de sua classe?"
fonte: GUERRA, Eduardo, Designer Pattern com Java. Ed.: Casa do Código - SP

Recomendado para você

Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven

Maven é uma ferramenta de automação de projetos usada principalmente para projetos Java. Ela gerencia dependências, controla versões, gera relatórios e garante a qualidade do código através de testes. Maven usa um arquivo POM para configurar detalhes do projeto e dependências. Ele define ciclos de vida para compilação, teste e empacotamento.

builddependênciasjava8
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java

O documento fornece um resumo sobre o framework Spring, descrevendo: 1) Por que foi criado o Spring para substituir o EJB do Java EE, tornando o desenvolvimento Java mais leve e flexível; 2) Os principais conceitos do Spring como injeção de dependência e gerenciamento de beans; 3) As principais partes do framework Spring e projetos relacionados como Spring Boot, Spring MVC e Spring Data.

springspring-frameworkspring-boot
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDDesenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD

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.

bookmarkingsocialdjango
Dynamic Factory
fonte: GUERRA, Eduardo, Designer Pattern com Java. Ed.: Casa do Código - SP
Exemplo usando Factory
Resolvendo outras
Dependências
IOC (Inversão de controle)
● Delegação de tarefas de construção para
frameworks
● O objeto perde o controle sobre sua
construção
● Possibilita menor acoplamento entre as
dependências
Injeção de dependência
● Design pattern que visa desacoplar os
componentes da aplicação;
● Injeta através de construtor, setters ou
atributos o valor de dependência para a
classe a ser construída;

Recomendado para você

Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven

O documento descreve o Maven, uma ferramenta para construir, gerenciar e implantar projetos Java. Ele explica que o Maven torna o processo de construção fácil através de um sistema de construção uniforme (POM), fornece diretrizes para as melhores práticas e permite atualizações fáceis de componentes (dependências).

mavenjavadesenvolvimento
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)

O documento resume os principais tópicos sobre persistência de dados em Java, incluindo JDBC, Maven, CRUD, padrão DAO e JPA/Hibernate. É apresentado um curso sobre o tema com exemplos de projetos.

javajdbcjpa
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor

O documento apresenta o framework Play! para desenvolvimento de aplicações web com Java. Apresenta uma introdução ao framework, instruções de instalação e configuração, criação de modelos, controllers e views, utilização de módulos e deploy da aplicação.

play frameworkweblovershtml
Injeção de dependência
fonte: GUERRA, Eduardo, Designer Pattern com Java. Ed.: Casa do Código - SP
Injeção de dependência
PedidoRepository
ConexaoBanco CarrinhoDeCompra
ProdutoRepository
ClienteRepositoryContainer IoC
public class CarrinhoDeCompra {
@Autowired
private PedidoRepository repositorio;
}
Spring e IoC
● Tudo passa pelo Container de Beans
● É o núcleo do Spring famework
● Usa IOC para gerenciar os componentes que
compõem uma aplicação
● Componentes são expressos como simples
Java Beans
● O Container gerencia as relações entre os
Beans e é responsável por sua configuração
● O Container gerencia o ciclo de vida dos
Beans
Tipos de Container
● Bean Factory
○ Dá suporte básico a injeção de dependência
○ Configuração e gerenciamento do ciclo de vida
● Application Context
○ Construído sobre o Bean Factory adicionando
serviços de:
■ Resolução “mensagens” através de arquivos de
propriedades para internacionalização
■ Carregamento de recursos genéricos
■ Publicação de eventos

Recomendado para você

Spring boot
Spring bootSpring boot
Spring boot

O documento apresenta Spring Boot, uma forma de iniciar aplicações Java em minutos. Ele explica como Spring Boot simplifica a configuração de projetos e permite focar no desenvolvimento ao invés de configurações. O documento também mostra passo a passo como iniciar uma aplicação simples com Spring Boot e como implantá-la na nuvem usando AWS Elastic Beanstalk.

javaspringspring-boot
Precisamos falar sobre Gradle
Precisamos falar sobre GradlePrecisamos falar sobre Gradle
Precisamos falar sobre Gradle

Apresentação feita no MeetUp do SouJava Campinas. Nessa apresentação explicamos os conceitos básicos de Gradle utilizando diversos exemplos. No final apresentamos algumas características que fazem de Gradle uma ótima opção para usar no seu próximo projeto. Exemplos disponíveis em: https://github.com/wrpinheiro/gradle-soujava-meetup

gradlebuildingtools
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011

O documento discute o framework PHP Zend Framework, destacando suas principais características como a implementação de padrões de projeto, componentes reusáveis e uma comunidade ativa. O framework fornece uma biblioteca de classes PHP 5 para desenvolvimento de aplicações web seguindo o padrão MVC e permite alta customização e extensibilidade do código.

zend frameworkcampus party
Exemplo Bean Factory
@Service(value="mensagemBean")
public class MensagemImpl implements Mensagem {
private String mensagem = “Olá”;
public void setMensagem(String mensagem){
this.mensagem = mensagem;
}
public String getMensagem() {
return mensagem;
}
}
public interface Mensagem {
String getMensagem();
}
Características dos managed
beans
● Singletons por default
● Propriedades setadas por Dependency
Injection
○ Referência para outros managed beans
○ Strings
○ Tipos primitivos
○ Coleções (lists, sets, map, props)
● Parâmetros podem ser extraídos para
arquivos de propriedades
Tipos de anotações
● @Component - Componente genérico da
aplicação
● @Service – Anotação camada de serviço
● @Repository – Anotação para DAO
● @Controller – Anotação para camada web
● @Autowired – Injeção de dependência
● @Qualifier – Qualificar o nome do bean a ser
injetado
Spring - Boot
● Novo projeto da Pivot para simplificar o
inicio do desenvolvimento de aplicações
Spring.
● Elimina todos os xmls e configurações
básicas para uma aplicação Spring.
● Ganhou fama com o post no twitter:
https://twitter.com/rob_winch/status/3648716
58483351552

Recomendado para você

Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework

O documento fornece informações sobre o framework Spring, incluindo sua origem, filosofia, conceitos como inversão de controle e injeção de dependência, e como desenvolver aplicações web com Spring MVC.

springpt-brjava
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web

[1] O documento discute o desenvolvimento de aplicações web usando o framework Django, incluindo sua história, características e padrão MVC. [2] É apresentada uma introdução ao Django, explicando o que é o framework e como ele pode ser usado para construir aplicações web de forma rápida e eficiente. [3] São descritas as etapas para criar uma primeira aplicação web simples usando Django, incluindo a instalação do framework, criação de um projeto e execução de um servidor de desenvolvimento.

aplicao webpythondjango
Java web
Java webJava web
Java web

Este documento apresenta as tecnologias Java Web utilizadas no STI, incluindo JSF, Spring e Hibernate. JSF é utilizado como framework front-end, Spring controla serviços e transações, e Hibernate é o ORM. O documento também explica conceitos como Inversão de Controle, Injeção de Dependência e escopo de beans no Spring.

javastiarquitetura
Spring - Boot
● Desenvolvido em Grovy
● Já configura todas as libs necessárias
● Não é um novo framework e um bootstrap
para Spring
● Configuração básica pronta
● Disponibiliza servidor tomcat ou jetty
embutido
Spring - Boot - Java
1. Criar um novo projeto Maven
2. Configurar pom.xml
3. Criar classe main
4. Criar classes de negócio da aplicação
Spring - Boot - pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
Spring - Boot - pom.xml
● Dependência Web Básica

Recomendado para você

Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python

Palestra do Luiz Guilherme Francovich Aldabalde apresentada no FLISOL 2009 sobre os elementos que compõem um framework web desenvolvido em Python.

flisolpythonpythonrio
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python

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.

flisol2009pythonframeworks
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit

O documento discute o Google Web Toolkit (GWT), que permite aos desenvolvedores criarem aplicativos front-end complexos em Java que são compilados para JavaScript otimizado. O GWT fornece recursos como comunicação com servidores, componentes de interface do usuário reutilizáveis, e integração com ferramentas de desenvolvimento como Eclipse.

java scriptgoogle web toolkitjava
Classe Main Básica Spring-boot
Spring-boot Serviço Web
Ao rodar o tomcat/jetty embutido é iniciado e basta acessar http://localhost:8080/
que a app web esta disponível com base nos controladores criados
Prática
Injeção de dependência com Spring
Spring-Data

Recomendado para você

Cloudformation
CloudformationCloudformation
Cloudformation

O documento discute a ferramenta AWS CloudFormation, que permite gerenciar a infraestrutura na nuvem como código através de templates. Ele explica os componentes principais do CloudFormation, como templates, recursos, stacks e eventos, e discute como criar e atualizar stacks usando templates. Também aborda boas práticas como reutilização de templates e não incluir credenciais nos arquivos.

awscloudcloudformation
Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf

Alfabetização de adultos.pdf

Texto e atividade - Fontes alternativas de energia
Texto e atividade -  Fontes alternativas de energiaTexto e atividade -  Fontes alternativas de energia
Texto e atividade - Fontes alternativas de energia

Fontes alternativas de energia são opções energéticas que causam menos impactos negativos ao meio ambiente, como energia solar, energia eólica e energia da biomassa.

fontes de energiaenergía solarenergia eolica
Realidade
Banco de dados
Framework web 01 - Aula UTFPR 2018
Spring Data
Realidade Persistência Java

Recomendado para você

Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24

Auxiliar escola sabatina

Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...

Slideshare Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no culto, para edificação doutrinária da Igreja, 3Tr24, Pr Henrique, EBD NA TV, 3° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, A RELEVÂNCIA DA IGREJA, SUA ESSÊNCIA E MISSÃO, Reafirmando os fundamentos, a importância do compromisso, com a Palavra de Deus, a Adoração sincera e, o serviço autêntico, segundo os preceitos, de Jesus Cristo, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Pr. Josué Rodrigues de Gouveia, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique

slideshare lição 2betela
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docxPlano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx

Plano analítico

Spring Data
“Simplifica o desenvolvimento de aplicações
que usam novas tecnologias de acesso a
dados como: noSql, mapReduce e cloud.
Além do suporte aperfeiçoado a bancos
relacionais.”
Spring Data
SubProjetos
●JPA
●JDBC Extensions
●Hadoop
●GemFire
●Redis
●Riak
●MongoDB
●Neo4j
●Blob
●Commons
Spring Data - COMMONS
Conceito utilizado por todos os outros
subprojetos, é utilizado como core do
projeto Spring Data.
Spring Data - COMMONS
Uma interface principal denominada
CrudRepository que deve ser herdada para
cada Model Class da aplicação.

Recomendado para você

Mini livro sanfona - Minha Escola Tem História.
Mini livro  sanfona - Minha Escola Tem História. Mini livro  sanfona - Minha Escola Tem História.
Mini livro sanfona - Minha Escola Tem História.

A Escola Municipal Santa Maria, foi fundada em 05 de abril de 1987 com o objetivo de acolher as crianças em idade escolar, que se encontravam excluídas por falta de vagas nas escolas do Bairro Nova Imperatriz, preocupação de sua fundadora e professora Maria Vieira, que na época exercia a função de tesoureira da Associação São José, do Bairro Nova Imperatriz. O nome da escola foi escolhido pela associação do bairro.

escola santa mariafundação escola santa mariaminha escola tem história
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...

Este artigo tem por objetivo apresentar como a inteligência artificial poderá ser utilizada no desenvolvimento da educação com os benefícios e os riscos relacionados com sua utilização, bem como mostrar as deficiências na aplicação da Inteligência Artificial nos processos de ensino no Brasil. Nas palavras do cientista de computação que criou o termo, John McCarthy, Inteligência Artificial é “a ciência e engenharia de produzir sistemas inteligentes”. É a tecnologia empregada para fazer máquinas se comportarem como humanos na realização de atividades manuais, tomada de decisões, compreensão de dados e até a criação de conteúdo (inovação mais recente). As máquinas são munidas de dados e programadas para aprender com eles, dividindo as informações em camadas e reconhecendo padrões. Quais são os benefícios e os riscos da Inteligência Artificial na educação? A Inteligência Artificial pode ajudar o professor a elaborar questões, fazer o planejamento de aulas e avaliar o desempenho dos estudantes. Para o aluno, a IA facilita a pesquisa e a obtenção de conhecimento. O desenvolvimento da habilidade de manusear corretamente essa tecnologia será mais uma tarefa do docente no contexto da cultura digital. Hoje, o papel do professor não é de mero transmissor de informações, e sim de mediador e apoiador no processo de aprendizagem. A Inteligência Artificial pode trazer melhorias para o processo educacional, mas também traz riscos e desafios para as instituições de ensino. Pode-se afirmar que a Inteligência Artificial trará benefícios incomensuráveis às instituições de ensino, a seus gestores, aos professores e aos alunos em todos os níveis e que existem riscos que precisam ser evitados em sua utilização. Muitas universidades no mundo ainda não sabem o que fazer quanto ao uso da Inteligência Artificial na educação e o Brasil apresenta grandes deficiências na aplicação das ferramentas da Inteligência Artificial na educação em todos os seus níveis de ensino.

Acróstico - Bullying é crime!
Acróstico - Bullying é crime!Acróstico - Bullying é crime!
Acróstico - Bullying é crime!

Também chamado de intimidação sistemática, é considerado bullying “todo ato de violência física ou psicológica, intencional e repetitivo que ocorre sem motivação evidente, praticado por indivíduo ou grupo, contra uma ou mais pessoas, com o objetivo de intimidá-la ou agredi-la, causando dor e angústia à vítima.

acróstico bullyingbullying na escolabullying não é brincadeira
Spring Data - CrudRepository
Spring Data – JPARepository
Configuração Spring-boot
Prática

Recomendado para você

LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdfLEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf

Mensagem de férias

mensagem
A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024

A realidade do professor no Brasil é um campo de batalhas diárias, uma jornada árdua e muitas vezes solitária. Trabalhei anos em escolas, sempre com a missão de abrir horizontes para meus alunos, mostrando-lhes o vasto mundo dos recursos tecnológicos. Nas minhas aulas, me esforcei para transmitir o pouco que sabia de tecnologia, utilizando ferramentas modernas para enriquecer o ensino e despertar o interesse dos estudantes. No entanto, o que encontrei nas instituições, tanto públicas quanto privadas, foi um ambiente ainda preso no passado, dominado pelo analógico e resistente à mudança. Hoje, a frustração de ver o potencial dos meus alunos limitado pela falta de inovação nas escolas é um peso que carrego comigo. As instituições, em vez de serem faróis de modernidade e progresso, muitas vezes freiam o processo de aprendizagem e não oferecem as atualizações necessárias para que possamos acompanhar o ritmo frenético das transformações globais. Cansado dessa inércia, tomei a decisão de mudar meu rumo. Agora, trabalho em casa, no formato home office. Não dependo mais das escolas que, ao invés de impulsionar, travavam meu desenvolvimento. Essa mudança me proporcionou uma liberdade que eu não conhecia. Finalmente, meu capital humano começou a se incrementar. Sem as amarras institucionais, consegui explorar novas tecnologias, aprender continuamente e aplicar esse conhecimento de maneira mais eficaz e criativa. Olhar para trás é doloroso, mas também revelador. A resistência das escolas em se atualizarem não apenas impede o avanço dos alunos, mas também sufoca a evolução dos professores. Vivemos em um mundo onde a tecnologia avança em uma velocidade estonteante, e ficar parado é, na verdade, regredir. Minha jornada agora é outra. Trabalho com paixão, explorando o mundo digital, sempre em busca de novas ferramentas e metodologias para enriquecer meu trabalho. Não sinto mais a frustração de ver meu potencial limitado, e isso me dá uma nova perspectiva e uma nova esperança. Sigo acreditando que, mesmo em um ambiente de resistência, cada pequeno passo em direção ao futuro pode fazer uma diferença imensa.

aulas online de espnahol
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantililSEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil

violência sexual infantil

securitykids
Spring Data - Query Builder
Construção de query utilizando somente
o nome do método.
Spring Data - Query Builder
Spring Data - @Query
Para aplicações que utilizam JPA, ainda é
possível criar as query utilizando JPAQL
Spring Data - Paginação
Utilizando as classes Page e Pageable do
Spring é possível fazer paginação na query
com o minimo de esforço.
Utilizando o método:

Recomendado para você

Trabalho Colaborativo na educação especial.pdf
Trabalho Colaborativo na educação especial.pdfTrabalho Colaborativo na educação especial.pdf
Trabalho Colaborativo na educação especial.pdf

O trabalho colaborativo consiste em estratégia pedagógica em que o professor do ensino comum e o professor especialista planejam, de forma articulada, procedimentos de ensino para o atendimento a estudantes público- alvo da educação especial, mediante ajustes por parte dos professores.

educacaoespecialtrabalho
Relatório de Atividades 2019 CENSIPAM.pdf
Relatório de Atividades 2019 CENSIPAM.pdfRelatório de Atividades 2019 CENSIPAM.pdf
Relatório de Atividades 2019 CENSIPAM.pdf

Relatório de Atividades 2019 CENSIPAM https://www.gov.br/censipam/pt-br

Redação e Leitura - Entenda o texto expositivo na redação
Redação e Leitura - Entenda o texto expositivo na redaçãoRedação e Leitura - Entenda o texto expositivo na redação
Redação e Leitura - Entenda o texto expositivo na redação

É um tipo de texto que visa a apresentação de um conceito ou de uma ideia. Muito comum esse tipo de texto ser abordado no contexto escolar e acadêmico, uma vez que inclui formas de apresentação, tais como: seminários, artigos acadêmicos, congressos, conferências, palestras, colóquios, entrevistas, dentre outros.

textoredacaoleitura
Mais Spring Data-JPA
Repositórios Customizados
Query DSL
Specification
Auditing
StoreProcedures
WebSuport
Prática
Criar repositórios, entidades e testar.
Transações Spring
● Suporte para gerenciamento programático e
declarativo de transações
● Transações locais são delegadas pelo Spring para o
gerente de transações do data-source
● Quando múltiplos recursos estão envolvidos
(transações distribuídas), Spring delega para o
gerente de transações JTA obtido através do JNDI
● Apenas algumas pequenas mudanças são
necessárias para trocar entre local e JTA
Transações Spring
● Gerenciamento Declarativo (+)
○ Usa AOP para encapsular chamadas a objetos
transacionais com código de begin e commit de
transações
● Comportamento de propagação
○ Mandatory, Never, Not Supported, Required, Requires New, Support,
Nested
● Também suporta níveis de isolação
○ Default, Read Uncommitted, Read Committed, Repeatable Read,
Serializable

Recomendado para você

Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf

Relatório de Atividades 2017 CENSIPAM https://www.gov.br/censipam/pt-br

Relatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdfRelatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdf

Relatório de Atividades 2021/2022 CENSIPAM https://www.gov.br/censipam/pt-br

escrita criativa utilizada na arteterapia
escrita criativa   utilizada na arteterapiaescrita criativa   utilizada na arteterapia
escrita criativa utilizada na arteterapia

arteterapia terapia ocupacional

escritacriativaeducacao
Modelo transacional
● Normalmente o modelo flat transactions
● Se método é chamado dentro de uma transação, ele
pode continuar transação anterior
● Se ele falhar, transação inteira é revertida
● Se nova transação for iniciada no método que já faz
parte de uma transação, ela é independente
● Se falhar, pode sinalizar rollback() para desfazer
transação externa (ou não, e permitir que transação
externa continue)
● O possível rollback da transação externa não afetará
outras transações (T2) cujos resultados já foram
cometidos
Modelo transacional
T1 Suspensa T1
T2
Suspensa T1
T3
Início
A=0
B=0
C=0
A=5
sucesso
A=5
B=3
falha
C=8 C=0
Fim
A=5
B=0
C=0
B=0
Comportamento de propagação
● Mandatory
○ Indica que o método só pode ser chamado no
escopo de uma transação do cliente
○ Se o método for chamado fora de uma
transação, ele causará uma exceção
● Never
○ Indica que o método nunca pode estar dentro
de uma transação
○ Se o cliente que chama o método for parte de
uma transação, ele causará uma exceção
Comportamento de propagação
● NotSupported
○ Indica que o método não suporta transações
○ Se o método for chamado pelo cliente no escopo de uma
transação, a mesma será suspensa enquanto durar a
chamada do método (não haverá propagação de
transações do cliente)
● Required
○ Indica que o escopo de uma transação é requerido pelo
método
○ Se não existe transação, uma nova é criada e dura até
que o método termine (é propagada para todos os
métodos chamados)
○ Se já existe uma transação iniciada pelo cliente, o bean é
incluído no seu escopo durante a chamada do método

Recomendado para você

Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf

libras do zero

idiomas
Relatório de Atividades 2015 CENSIPAM.pdf
Relatório de Atividades 2015 CENSIPAM.pdfRelatório de Atividades 2015 CENSIPAM.pdf
Relatório de Atividades 2015 CENSIPAM.pdf

Relatório de Atividades 2015 CENSIPAM https://www.gov.br/censipam/pt-br

(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS

Inscreva-se em nosso canal e tenha em suas mãos grãndes estudos bíblicos, temáticos e doutrinários da Palavra de Deus . Pr Davi Passos Estudos Bíblicos🇦🇺 https://www.youtube.com/user/Davidjp21 https://pt.slideshare.net/davipassos77 https://www.facebook.com/davi.passos.77 https://www.facebook.com/davi .passos .... https://gettr.com/user/prdavipassos

teologia
Comportamento de propagação
● Requires New
○ Indica que o método requer uma nova transação
○ Estando ou não o cliente no escopo de uma transação, o
bean irá iniciar uma nova transação que iniciará e
terminará no bean.
● Support
○ Indica que o método suporta transações
○ Será incluído no escopo da transação do cliente se existir
○ Se ele for chamado fora do escopo de uma transação ele
realizará suas tarefa sem transações e pode chamar
objetos que não suportam transações
E como fazer?
● Anotando as transações
○ A anotação pode ser no começo da classe ou
acima de um método
E como fazer?
● @Transactional
○ Indica que a classe ou o método esta envolvido em
uma transação
○ Se estiver sobre a classe indica que todos os
métodos terão o mesmo comportamento
transacional;
○ Os métodos anotados com @Transactional
desconsideram a anotação da classe
● ReadOnly
○ Indica que o método ou classe poderá ou não
alterar os dados contidos na transação
E como fazer?
● Propagation
● Indica o tipo de propagação da transação
○ PROPAGATION_MANDATORY
○ PROPAGATION_NESTED
○ PROPAGATION_NEVER
○ PROPAGATION_NOT_SUPPORTED
○ PROPAGATION_REQUERED
○ PROPAGATION_REQUERED_NEW
○ PROPAGATION_SUPPORTS

Recomendado para você

Prática
Criar Services e configurar transações

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
Dalton Valadares
 
Spring data
Spring dataSpring data
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
André Luiz Forchesatto
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
Bruno de Andrade
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
Anderson Araújo
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
Dr. Spock
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
Leonardo Sousa
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
Emmanuel Neri
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
Frederico Maia Arantes
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
Eduardo Bregaida
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
Dr. Spock
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
Petronio Candido
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
Alexsandro Oliveira
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
Cezar Souza
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica
Victor Cavalcante
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
Marcos Batista
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
Flávio Lisboa
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
DanielChristofolli
 
jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2
Victor Cavalcante
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
Michael Costa
 

Mais procurados (20)

Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Spring data
Spring dataSpring data
Spring data
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 
Apresentação jsf 1_2
Apresentação jsf 1_2Apresentação jsf 1_2
Apresentação jsf 1_2
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Java 8 - A Evolução da Linguagem
Java 8 - A Evolução da LinguagemJava 8 - A Evolução da Linguagem
Java 8 - A Evolução da Linguagem
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Gradle spring-hateoas-Lombok
Gradle spring-hateoas-LombokGradle spring-hateoas-Lombok
Gradle spring-hateoas-Lombok
 
jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 

Semelhante a Framework web 01 - Aula UTFPR 2018

Django
DjangoDjango
Como utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicaçõesComo utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicações
lehsantoslucena
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
armeniocardoso
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
phelypploch
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
André Justi
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos
 
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDDesenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
Rodrigo Fernandes
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven
Edgar Dantas
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
Mario Sergio
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
Spring boot
Spring bootSpring boot
Spring boot
John Godoi
 
Precisamos falar sobre Gradle
Precisamos falar sobre GradlePrecisamos falar sobre Gradle
Precisamos falar sobre Gradle
Wellington Pinheiro
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
elliando dias
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
antonio sérgio nogueira
 
Java web
Java webJava web
Java web
marcosvpcortes
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
PythOnRio
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
Luiz Aldabalde
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
Felipe J. R. Vieira
 
Cloudformation
CloudformationCloudformation
Cloudformation
Fabio De Lima Rodriguez
 

Semelhante a Framework web 01 - Aula UTFPR 2018 (20)

Django
DjangoDjango
Django
 
Como utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicaçõesComo utilizar Spring boot em suas aplicações
Como utilizar Spring boot em suas aplicações
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDDDesenvolvimento de uma plataforma de bookmarking social com Django e TDD
Desenvolvimento de uma plataforma de bookmarking social com Django e TDD
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Spring boot
Spring bootSpring boot
Spring boot
 
Precisamos falar sobre Gradle
Precisamos falar sobre GradlePrecisamos falar sobre Gradle
Precisamos falar sobre Gradle
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
Java web
Java webJava web
Java web
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Cloudformation
CloudformationCloudformation
Cloudformation
 

Último

Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf
arodatos81
 
Texto e atividade - Fontes alternativas de energia
Texto e atividade -  Fontes alternativas de energiaTexto e atividade -  Fontes alternativas de energia
Texto e atividade - Fontes alternativas de energia
Mary Alvarenga
 
Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24
DirceuSilva26
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
LuizHenriquedeAlmeid6
 
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docxPlano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
IsaiasJohaneSimango
 
Mini livro sanfona - Minha Escola Tem História.
Mini livro  sanfona - Minha Escola Tem História. Mini livro  sanfona - Minha Escola Tem História.
Mini livro sanfona - Minha Escola Tem História.
Mary Alvarenga
 
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
Faga1939
 
Acróstico - Bullying é crime!
Acróstico - Bullying é crime!Acróstico - Bullying é crime!
Acróstico - Bullying é crime!
Mary Alvarenga
 
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdfLEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LucliaMartins5
 
A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024
Espanhol Online
 
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantililSEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
menesabi
 
Trabalho Colaborativo na educação especial.pdf
Trabalho Colaborativo na educação especial.pdfTrabalho Colaborativo na educação especial.pdf
Trabalho Colaborativo na educação especial.pdf
marcos oliveira
 
Relatório de Atividades 2019 CENSIPAM.pdf
Relatório de Atividades 2019 CENSIPAM.pdfRelatório de Atividades 2019 CENSIPAM.pdf
Relatório de Atividades 2019 CENSIPAM.pdf
Falcão Brasil
 
Redação e Leitura - Entenda o texto expositivo na redação
Redação e Leitura - Entenda o texto expositivo na redaçãoRedação e Leitura - Entenda o texto expositivo na redação
Redação e Leitura - Entenda o texto expositivo na redação
GrazielaTorrezan
 
Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf
Falcão Brasil
 
Relatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdfRelatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdf
Falcão Brasil
 
escrita criativa utilizada na arteterapia
escrita criativa   utilizada na arteterapiaescrita criativa   utilizada na arteterapia
escrita criativa utilizada na arteterapia
shirleisousa9166
 
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
pattyhsilva271204
 
Relatório de Atividades 2015 CENSIPAM.pdf
Relatório de Atividades 2015 CENSIPAM.pdfRelatório de Atividades 2015 CENSIPAM.pdf
Relatório de Atividades 2015 CENSIPAM.pdf
Falcão Brasil
 
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
Pr Davi Passos - Estudos Bíblicos
 

Último (20)

Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf
 
Texto e atividade - Fontes alternativas de energia
Texto e atividade -  Fontes alternativas de energiaTexto e atividade -  Fontes alternativas de energia
Texto e atividade - Fontes alternativas de energia
 
Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
 
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docxPlano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
Plano Analitico de Psicopedagogia -11 Classe- II Trimestre - 2024_014203.docx
 
Mini livro sanfona - Minha Escola Tem História.
Mini livro  sanfona - Minha Escola Tem História. Mini livro  sanfona - Minha Escola Tem História.
Mini livro sanfona - Minha Escola Tem História.
 
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
A EDUCAÇÃO COM A INTELIGÊNCIA ARTIFICIAL E AS DEFICIÊNCIAS DE SUA APLICAÇÃO N...
 
Acróstico - Bullying é crime!
Acróstico - Bullying é crime!Acróstico - Bullying é crime!
Acróstico - Bullying é crime!
 
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdfLEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
LEMBRANCINHA Para-MENSAGEM de -FERIAS.pdf
 
A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024
 
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantililSEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
SEQUÊNCIA NÃO ME TOCA, SEU BOBOCA, Violência sexual infantilil
 
Trabalho Colaborativo na educação especial.pdf
Trabalho Colaborativo na educação especial.pdfTrabalho Colaborativo na educação especial.pdf
Trabalho Colaborativo na educação especial.pdf
 
Relatório de Atividades 2019 CENSIPAM.pdf
Relatório de Atividades 2019 CENSIPAM.pdfRelatório de Atividades 2019 CENSIPAM.pdf
Relatório de Atividades 2019 CENSIPAM.pdf
 
Redação e Leitura - Entenda o texto expositivo na redação
Redação e Leitura - Entenda o texto expositivo na redaçãoRedação e Leitura - Entenda o texto expositivo na redação
Redação e Leitura - Entenda o texto expositivo na redação
 
Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf
 
Relatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdfRelatório de Atividades 2021/2022 CENSIPAM.pdf
Relatório de Atividades 2021/2022 CENSIPAM.pdf
 
escrita criativa utilizada na arteterapia
escrita criativa   utilizada na arteterapiaescrita criativa   utilizada na arteterapia
escrita criativa utilizada na arteterapia
 
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
 
Relatório de Atividades 2015 CENSIPAM.pdf
Relatório de Atividades 2015 CENSIPAM.pdfRelatório de Atividades 2015 CENSIPAM.pdf
Relatório de Atividades 2015 CENSIPAM.pdf
 
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
(45-ESTUDO - LUCAS) A EPIRITUALIDADE DE JESUS
 

Framework web 01 - Aula UTFPR 2018

  • 1. Frameworks para Desenvolvimento web em Java André Luiz Forchesatto
  • 2. Apresentação ● Cursando MBA em Liderança, Inovação e Gestão 3.0 PUC-RS ● Especialista em Ciência da Computação pela UFSC; ● Graduado em Tecnologia em Informática pela Unoesc; ● Atuação ○ Sócio Camtwo Sistemas; ○ CEO Clínica nas nuvens; ○ Desenvolvedor Java desde 2002; ○ Professor; ● Contato ○ andreforchesatto@gmail.com ○ github.com/forchesatto ○ slideshare.net/andreforchesatto
  • 3. Ementário Evolução do desenvolvimento de aplicações WEB. Introdução ao Desenvolvimento RAD para WEB. Visão geral das ferramentas e frameworks para desenvolvimento de aplicações WEB. Gerenciamento de dependências e deploy com maven. Injeção de dependência com Spring ou CDI. Padrão de Desenvolvimento WEB Action Based e Component Based.
  • 4. Planejamento ● Aula 01 ○ Maven ○ Injeção de dependência ○ Introdução ao Spring ○ Spring IoC ○ Introdução Spring Boot ○ Introdução Spring Data ○ Spring Test ● Aula 02 ○ Spring MVC ○ Spring Rest ○ Spring Data ○ Spring Web com Thymeleaf
  • 5. Planejamento ● Aula 03 ○ Spring Web thymeleaf ● Aula 04 ○ Spring Security ● Aula 05 ○ Spring cloud ○ Trabalho Final
  • 7. Problema Gestão de Dependência
  • 8. Problema Gestão de Dependência ● Múltiplos Componentes ● Componentes dependem de outros componentes ● Múltiplas versões
  • 10. Conceito ● Ferramenta para gerenciamento, construção e implantação de projetos; ● Simplifica o processo de Build ● Organiza e compartilha as Libs dos projetos ● Fornece orientação para as melhores práticas de projeto e programação ● Gera relatórios e documentação sobre o projeto
  • 11. Características ● Builds automatizados ● Ciclo de vida bem definido (lifecycle) ● Repositório de artefatos ● Gestão de Dependências ● Definição de Projetos declarativa (POM) ● Plugins como peça fundamental ● Quickstart rápido de projetos ● Site de projetos facilmente acessível ● Integração com controle de versão
  • 12. Project Object Model (POM) ● Definições do projeto ● Configurações de dependências de componentes(lib) ● Customizações (definições de plugin, repositorios, etc..) ● Herança e agregação de projetos
  • 14. Propriedades (POM) ● groupId (nome do package - empresa) ● artifactId (identificador do projeto) ● packaging (pom, war, jar, etc. - default jar) ● version (versão de release ou SNAPSHOT)
  • 18. Herança de projetos ● Permite herdar as caracteristicas de um projeto pai, como libs, propriedades e build. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent>
  • 19. Tag Build Tag do pom.xml onde definimos parâmetros de compilação, como versão do Java, diretórios de resources e vários outros plug-ins que podem ser utilizados
  • 21. Instalação ● Devemos ter uma instalação quando desejamos rodar os comandos pelo prompt. ● Linux ○ sudo apt-get install maven2 ● Windows ○ Efetuar o download (http://maven.apache.org/download.html) ○ Descompactar em uma pasta ○ Criar uma variável de ambiente M2_HOME com o caminho da pasta ○ Adicionar no classpath esta variável com o bin
  • 22. Testando ● Testar no console mvn -v ● Criar um projeto simples no console: mvn archetype:create -DgroupId=br.com.camtwo -DartifactId=exemplo ● Verificar se criou a estrutura de diretórios ● Verificar se criou a pasta .m2
  • 24. Novo projeto: Maven + Eclipse File->New Project
  • 25. Novo projeto: Maven + Eclipse
  • 26. Novo projeto: Maven + Eclipse
  • 29. O que é? ● Surgiu em 2003 ● Framework open-source criado por Rod Johnson ● Container leve com inversão de controle e programação orientada a aspecto ● Criado para simplificar o desenvolvimento enterprise ● É um projeto guarda-chuva para vários outros
  • 30. Filosofia do framework ● Fornecer escolha em todos os níveis ● Acomodar diversas perspectivas. ● Manter forte compatibilidade com versões anteriores ● Preocupe-se com o design da API. ● Defina altos padrões de qualidade de código.
  • 31. Todos os componentes do sistema são gerenciados pelo Spring utilizando IoC e Injeção de dependência.
  • 32. "A primeira pergunta a ser respondida é: como obter um objeto sem depender direta ou indiretamente de sua classe?" fonte: GUERRA, Eduardo, Designer Pattern com Java. Ed.: Casa do Código - SP
  • 33. Dynamic Factory fonte: GUERRA, Eduardo, Designer Pattern com Java. Ed.: Casa do Código - SP
  • 34. Exemplo usando Factory Resolvendo outras Dependências
  • 35. IOC (Inversão de controle) ● Delegação de tarefas de construção para frameworks ● O objeto perde o controle sobre sua construção ● Possibilita menor acoplamento entre as dependências
  • 36. Injeção de dependência ● Design pattern que visa desacoplar os componentes da aplicação; ● Injeta através de construtor, setters ou atributos o valor de dependência para a classe a ser construída;
  • 37. Injeção de dependência fonte: GUERRA, Eduardo, Designer Pattern com Java. Ed.: Casa do Código - SP
  • 38. Injeção de dependência PedidoRepository ConexaoBanco CarrinhoDeCompra ProdutoRepository ClienteRepositoryContainer IoC public class CarrinhoDeCompra { @Autowired private PedidoRepository repositorio; }
  • 39. Spring e IoC ● Tudo passa pelo Container de Beans ● É o núcleo do Spring famework ● Usa IOC para gerenciar os componentes que compõem uma aplicação ● Componentes são expressos como simples Java Beans ● O Container gerencia as relações entre os Beans e é responsável por sua configuração ● O Container gerencia o ciclo de vida dos Beans
  • 40. Tipos de Container ● Bean Factory ○ Dá suporte básico a injeção de dependência ○ Configuração e gerenciamento do ciclo de vida ● Application Context ○ Construído sobre o Bean Factory adicionando serviços de: ■ Resolução “mensagens” através de arquivos de propriedades para internacionalização ■ Carregamento de recursos genéricos ■ Publicação de eventos
  • 41. Exemplo Bean Factory @Service(value="mensagemBean") public class MensagemImpl implements Mensagem { private String mensagem = “Olá”; public void setMensagem(String mensagem){ this.mensagem = mensagem; } public String getMensagem() { return mensagem; } } public interface Mensagem { String getMensagem(); }
  • 42. Características dos managed beans ● Singletons por default ● Propriedades setadas por Dependency Injection ○ Referência para outros managed beans ○ Strings ○ Tipos primitivos ○ Coleções (lists, sets, map, props) ● Parâmetros podem ser extraídos para arquivos de propriedades
  • 43. Tipos de anotações ● @Component - Componente genérico da aplicação ● @Service – Anotação camada de serviço ● @Repository – Anotação para DAO ● @Controller – Anotação para camada web ● @Autowired – Injeção de dependência ● @Qualifier – Qualificar o nome do bean a ser injetado
  • 44. Spring - Boot ● Novo projeto da Pivot para simplificar o inicio do desenvolvimento de aplicações Spring. ● Elimina todos os xmls e configurações básicas para uma aplicação Spring. ● Ganhou fama com o post no twitter: https://twitter.com/rob_winch/status/3648716 58483351552
  • 45. Spring - Boot ● Desenvolvido em Grovy ● Já configura todas as libs necessárias ● Não é um novo framework e um bootstrap para Spring ● Configuração básica pronta ● Disponibiliza servidor tomcat ou jetty embutido
  • 46. Spring - Boot - Java 1. Criar um novo projeto Maven 2. Configurar pom.xml 3. Criar classe main 4. Criar classes de negócio da aplicação
  • 47. Spring - Boot - pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent>
  • 48. Spring - Boot - pom.xml ● Dependência Web Básica
  • 49. Classe Main Básica Spring-boot
  • 50. Spring-boot Serviço Web Ao rodar o tomcat/jetty embutido é iniciado e basta acessar http://localhost:8080/ que a app web esta disponível com base nos controladores criados
  • 57. Spring Data “Simplifica o desenvolvimento de aplicações que usam novas tecnologias de acesso a dados como: noSql, mapReduce e cloud. Além do suporte aperfeiçoado a bancos relacionais.”
  • 59. Spring Data - COMMONS Conceito utilizado por todos os outros subprojetos, é utilizado como core do projeto Spring Data.
  • 60. Spring Data - COMMONS Uma interface principal denominada CrudRepository que deve ser herdada para cada Model Class da aplicação.
  • 61. Spring Data - CrudRepository
  • 62. Spring Data – JPARepository
  • 65. Spring Data - Query Builder Construção de query utilizando somente o nome do método.
  • 66. Spring Data - Query Builder
  • 67. Spring Data - @Query Para aplicações que utilizam JPA, ainda é possível criar as query utilizando JPAQL
  • 68. Spring Data - Paginação Utilizando as classes Page e Pageable do Spring é possível fazer paginação na query com o minimo de esforço. Utilizando o método:
  • 69. Mais Spring Data-JPA Repositórios Customizados Query DSL Specification Auditing StoreProcedures WebSuport
  • 71. Transações Spring ● Suporte para gerenciamento programático e declarativo de transações ● Transações locais são delegadas pelo Spring para o gerente de transações do data-source ● Quando múltiplos recursos estão envolvidos (transações distribuídas), Spring delega para o gerente de transações JTA obtido através do JNDI ● Apenas algumas pequenas mudanças são necessárias para trocar entre local e JTA
  • 72. Transações Spring ● Gerenciamento Declarativo (+) ○ Usa AOP para encapsular chamadas a objetos transacionais com código de begin e commit de transações ● Comportamento de propagação ○ Mandatory, Never, Not Supported, Required, Requires New, Support, Nested ● Também suporta níveis de isolação ○ Default, Read Uncommitted, Read Committed, Repeatable Read, Serializable
  • 73. Modelo transacional ● Normalmente o modelo flat transactions ● Se método é chamado dentro de uma transação, ele pode continuar transação anterior ● Se ele falhar, transação inteira é revertida ● Se nova transação for iniciada no método que já faz parte de uma transação, ela é independente ● Se falhar, pode sinalizar rollback() para desfazer transação externa (ou não, e permitir que transação externa continue) ● O possível rollback da transação externa não afetará outras transações (T2) cujos resultados já foram cometidos
  • 74. Modelo transacional T1 Suspensa T1 T2 Suspensa T1 T3 Início A=0 B=0 C=0 A=5 sucesso A=5 B=3 falha C=8 C=0 Fim A=5 B=0 C=0 B=0
  • 75. Comportamento de propagação ● Mandatory ○ Indica que o método só pode ser chamado no escopo de uma transação do cliente ○ Se o método for chamado fora de uma transação, ele causará uma exceção ● Never ○ Indica que o método nunca pode estar dentro de uma transação ○ Se o cliente que chama o método for parte de uma transação, ele causará uma exceção
  • 76. Comportamento de propagação ● NotSupported ○ Indica que o método não suporta transações ○ Se o método for chamado pelo cliente no escopo de uma transação, a mesma será suspensa enquanto durar a chamada do método (não haverá propagação de transações do cliente) ● Required ○ Indica que o escopo de uma transação é requerido pelo método ○ Se não existe transação, uma nova é criada e dura até que o método termine (é propagada para todos os métodos chamados) ○ Se já existe uma transação iniciada pelo cliente, o bean é incluído no seu escopo durante a chamada do método
  • 77. Comportamento de propagação ● Requires New ○ Indica que o método requer uma nova transação ○ Estando ou não o cliente no escopo de uma transação, o bean irá iniciar uma nova transação que iniciará e terminará no bean. ● Support ○ Indica que o método suporta transações ○ Será incluído no escopo da transação do cliente se existir ○ Se ele for chamado fora do escopo de uma transação ele realizará suas tarefa sem transações e pode chamar objetos que não suportam transações
  • 78. E como fazer? ● Anotando as transações ○ A anotação pode ser no começo da classe ou acima de um método
  • 79. E como fazer? ● @Transactional ○ Indica que a classe ou o método esta envolvido em uma transação ○ Se estiver sobre a classe indica que todos os métodos terão o mesmo comportamento transacional; ○ Os métodos anotados com @Transactional desconsideram a anotação da classe ● ReadOnly ○ Indica que o método ou classe poderá ou não alterar os dados contidos na transação
  • 80. E como fazer? ● Propagation ● Indica o tipo de propagação da transação ○ PROPAGATION_MANDATORY ○ PROPAGATION_NESTED ○ PROPAGATION_NEVER ○ PROPAGATION_NOT_SUPPORTED ○ PROPAGATION_REQUERED ○ PROPAGATION_REQUERED_NEW ○ PROPAGATION_SUPPORTS
  • 81. Prática Criar Services e configurar transações