mini curso java ee

Post on 13-Apr-2017

386 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/

REGRA PARA ESSE MINI CURSO

QUESTIONE, CONTESTE E CRIE!

Conhecendo a turma

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

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

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

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.

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.

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

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

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

Gerando e entendendo um projeto maven

Gerando e entendendo um projeto maven

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.

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.

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….

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.

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

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:

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

Acessando página inicial

Acessando página de gerenciamento

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

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:

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“:

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

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

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

Vamos criar nossa própria aplicação!

(prática)

top related