mini curso java ee

28
Mini Curso Java EE

Upload: jesuinopower

Post on 13-Apr-2017

384 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Mini Curso Java EE

Mini Curso Java EE

Page 2: Mini Curso Java EE

Sobre- Graduando em Banco de dados na Fatec de São José dos Campos- Especialização em sistemas da informação pela UAB na UFABC- Trabalha há quase 10 anos na área de TI- Trabalha há 5 anos na Red Hat com manutenção de sistemas Java open

source (JBoss, jBPM e outros)- Dados abertos, software livre e blogueiro:

- http://aprendendo-javase.blogspot.com.br- http://aprendendo-javafx.blogspot.com.br/- http://aprendendo-javaee.blogspot.com.br/

Page 3: Mini Curso Java EE

REGRA PARA ESSE MINI CURSO

QUESTIONE, CONTESTE E CRIE!

Page 4: Mini Curso Java EE

Conhecendo a turma

- Conhecimento em Java, BD, etc- Querem usar IDE?- Gostam de linha de comando?- Familiaridade com Linux?

Page 5: Mini Curso Java EE

Programação- Dia 1

- Ferramentas necessárias - Conhecendo e explicando o que será usado- Explorando aplicações Java EE e executando no Wildfly Swarm

- Dia 2- Discussão sobre nossa aplicação- Criação das classes de modelo (JPA)- Classes para acesso às informações (EJB)- Ligando as camadas (CDI)- Testes com Arquillian a cada desenvolvimento

- Dia 3- Expondo as funcionalidades usando REST (JAX-RS)- Adicionando segurança a algumas páginas (JAAS)- Criando a aplicação WEB- Discussões de melhorias

Page 6: Mini Curso Java EE

Ferramentas necessárias- Maven 3.x

- https://maven.apache.org/download.cgi- Java JDK 8

- http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html

- Eclipse "mais novo possível" para Java EE- http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/mars2

- Servidor de aplicação Wildfly- wildfly.org/downloads

- Quickstarts- https://github.com/wildfly/quickstart/archive/10.x.zip

Page 7: Mini Curso Java EE

O que vamos fazer?Uma aplicação completa utilizando as APIs que fazem parte do Java Enterprise Edition. Essas APIs têm uma especificação que são implementadas em projetos como Wildfly, TomEE, Websphere, etc.Vamos explicar e usar as APIs EJB, JPA, CDI, JAX-RS, JTA (entre outras) e realizar a execução da nossa aplicação no Wildfly e no Swarm uma versão "microservice" do Wildfly.

Nossa aplicação irá consistir de um site de cursos gratuitos! Onde as pessoas se inscrevem e podem ver os dados do curso.

Mas antes vamos conhecer nossas ferramentas.

Page 8: Mini Curso Java EE

Mas afinal, o que é Java EE?Java EE é um conjunto de especificações destinados a facilitar a criação de aplicações "Enterprise"(aplicações que empresas usam) em Java. Assim, Java EE define um modelo de programação para criar aplicações para empresas, onde diversas tarefas comuns(persistência de dados, validações, transações, tratamento de requisições HTTP, entre outras) são especificadas e "colocadas no papel" para todos lerem, implementarem e usarem. O grupo que determina as especificações é aberto e até você pode fazer parte! Fonte: http://bit.ly/2fboJRc

Dentro do Java EE temos diversas APIs, vamos abordar algumas nesse curso para criarmos nossa app. JEE também tem versões, no nosso curso usaremos a verão 7. O mercado usa 5, 6 e 7.

Servlets, JSP, JPA, JAX-RS, JAX-WS, JMS, Batch Jobs, JAXB, JAXP, CDI, EJB e outras letrinhas são parte do mundo Java EE, mas não se assuste, vamos mostrar como é fácil criar aplicações usando essa plataforma.

Page 9: Mini Curso Java EE

O que é maven?Maven é uma ferramenta para realizar o build da aplicação e organizar as dependências em um repositório, o repositório maven.

Para usar maven você deve:

- Seguir a estrutura padrão - Descrever o projeto em um arquivo pom.xml(onde você fornece as

informações do seu projeto (grupo, id do artefato, versão, tipo do projeto), plugins e as dependências)

Para fazer o build do projeto você deve usar os ciclos de build:

clean limpa o projeto; compile compila o projeto; test só roda os testes após compilar; package compila, teste e "empacota" o projeto para uso

Page 10: Mini Curso Java EE

Verificar instalação- Comandos para verificar se tudo está ok:- Maven: $ mvn -version- Java: $ java -version- Abrir eclipse e apontar para a instalação do Maven

Windows -> Preferences -> Maven -> Installations -> Add

Page 11: Mini Curso Java EE

Gerando e entendendo um projeto mavenFile -> New -> Other -> Maven Project. Selecione Create Simple Archetype, next e, por fim, informe os dados do seu projeto

Page 12: Mini Curso Java EE

Gerando e entendendo um projeto maven

Page 13: Mini Curso Java EE

Gerando e entendendo um projeto maven

Page 14: Mini Curso Java EE

Gerando e entendendo um projeto mavenA estrutura:

src/main/java: Onde fica seu código principal, o código da aplicação

src/main/resources: localização de arquivos que ficarão no classpath

src/test/java: arquivos de teste java

src/test/resources: arquivos que ficam no classpath durante o teste somente

pom.xml: O descritor do projeto com as informações do mesmo.

Page 15: Mini Curso Java EE

A plataforma para execução de apps JEENossas aplicações rodam em algum lugar. Vamos usar o Wildfly, um servidor de aplicação que roda aplicações JEE.

Vamos usar um servidor de aplicação monolítico, onde instalamos diversas aplicações nele. Há uma outra versão que, se tivermos tempo, abordaremos no final do curso, o Wildfly Swarm.

Vamos agora conhecer o Wildfly e aprender a usar ele no Eclipse para podermos usar.

Page 16: Mini Curso Java EE

Motivações para usar um servidor de aplicação- APIs prontas, testadas e configuradas para uso;- Facilita monitoramento;- Pool de conexões com banco de dados;- Gerenciamento de transações nativo (Java Transaction API);- Pool de objetos pronto (EJBs são gerenciados pelo servidor);- Múltiplas aplicações em um só lugar;- Gerenciamento de LOG facilitado;- Gerenciamento geral feito através de diversas ferramentas providas pelo

servidor(CLI, interface WEB)- e a lista vai….

Page 17: Mini Curso Java EE

Instalando o Wildfly A instalação consiste simplesmente em “deszipar” o arquivo em algum diretório no disco! Tendo o Java, você já pode “subir” o servidor em seguida. Estamos utilizando o Wildfly 10, então “deszipe” o arquivo em algum lugar:

$ unzip ~/Downloads/wildfly-10.1.0.Final.zip -d .

Agora temos que ter a variável de ambiente JAVA_HOME configurada.

Agora vamos entender o Wildfly.

Page 18: Mini Curso Java EE

Os diretórios do Wildfly podem assustar, mas não é necessário aprender tudo agora:bin: Nesse diretório ficam scripts para gerenciar o servidormodules: Onde ficam os módulos (JARs)standalone e domain: Wildfly pode ser executado de uma forma onde múltiplos servidores pode ser gerenciados (domain) ou somente um (standalone). Vamos usar somente o standalonestandalone/deployments: Onde colocamos nossas aplicações no formato JAR ou WARstandalone/configuration: Configuração do servidor. Hoje não iremos em detalhes em como configurar

Entendendo o que tem dentro do Wildfly

Page 19: Mini Curso Java EE

Criando usuário de administraçãoAntes de subir, vamos criar um usuário de gerenciamento para conhecermos a página que permite gerenciar as coisas. Para isso usamos o script bin/add-user:

Page 20: Mini Curso Java EE

Inicializando e acessando a página de gerenciamentoPara inicializar o servidor execute o script bin/standalone.sh

Page 21: Mini Curso Java EE

Acessando página inicial

Page 22: Mini Curso Java EE

Acessando página de gerenciamento

Page 23: Mini Curso Java EE

Adicionando o servidor ao EclipseFile -> New -> Other -> Server -> escreva wildfly na lista (deixe baixando e vamos brincar com outras coisas)

Page 24: Mini Curso Java EE

Exemplos de aplicações Java EEAgora sem Eclipse vamos explorar os quickstarts. Unzip os quickstarts em algum diretório. Quickstarts são pequenas aplicações Java EE que demonstram alguma funcionalidade. E foram criados muuuuiiitttooos quickstarts:

Page 25: Mini Curso Java EE

Explorando uma aplicação: KitchensinkDeixe o wildfly em execução e entre no diretório kitchensink e execute:quickstart-10.x/kitchensink$ mvn clean package wildfly:deployNo JBoss você poderá ver que a aplicação foi “deployada“:

Page 26: Mini Curso Java EE

Explorando uma aplicação: KitchensinkAgora acesse a aplicação em localhost:8080/wildfly-kitchensink

Page 27: Mini Curso Java EE

Explorando uma aplicação: KitchensinkVamos explorar os arquivos da aplicação para nos familiarizarmos um brainstorm - Lembre-se: seja curioso e não tenha medo!

- Veja o arquivo pom.xml- Discutir o que tem nesse arquivo

- Classes Java:- Member.java - anotações e o que elas representam- MemberResourceRESTService.java - o que faz dessa classe um Web Service REST?- MemberRegistration.java - o que faz a anotação @Inject?

- Arquivos XML:- ./src/main/resources/META-INF/persistence.xml- ./src/main/webapp/WEB-INF/kitchensink-quickstart-ds.xml

Page 28: Mini Curso Java EE

Se você chegou até aqui...… e ainda temos tempo, podemos enfim programar.

Vamos criar nossa própria aplicação!

(prática)