Primeiro dia do curso sobre Java EE. Para entender melhor veja a postagem no seguinte blog:
http://aprendendo-javaee.blogspot.com/2016/11/mini-curso-java-ee-7-com-angularjs-no.html
2. 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/
4. Conhecendo a turma
- Conhecimento em Java, BD, etc
- Querem usar IDE?
- Gostam de linha de comando?
- Familiaridade com Linux?
5. 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
6. 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
7. 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.
8. 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.
9. 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
10. 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
11. Gerando e entendendo um projeto maven
File -> New -> Other -> Maven Project. Selecione Create Simple Archetype, next e, por fim, informe os dados
do seu projeto
14. Gerando e entendendo um projeto maven
A 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.
15. A plataforma para execução de apps JEE
Nossas 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.
16. 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….
17. 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.
18. Os diretórios do Wildfly podem assustar, mas não é necessário aprender tudo
agora:
bin: Nesse diretório ficam scripts para gerenciar o servidor
modules: 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 standalone
standalone/deployments: Onde colocamos nossas aplicações no formato JAR
ou WAR
standalone/configuration: Configuração do servidor. Hoje não iremos em
detalhes em como configurar
Entendendo o que tem dentro do Wildfly
19. Criando usuário de administração
Antes 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:
20. Inicializando e acessando a página de
gerenciamento
Para inicializar o servidor execute o script bin/standalone.sh
23. Adicionando o servidor ao Eclipse
File -> New -> Other -> Server -> escreva wildfly na lista (deixe baixando e
vamos brincar com outras coisas)
24. Exemplos de aplicações Java EE
Agora 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:
25. Explorando uma aplicação: Kitchensink
Deixe o wildfly em execução e entre no diretório kitchensink e execute:
quickstart-10.x/kitchensink$ mvn clean package wildfly:deploy
No JBoss você poderá ver que a aplicação foi “deployada“:
26. Explorando uma aplicação: Kitchensink
Agora acesse a aplicação em localhost:8080/wildfly-kitchensink
27. Explorando uma aplicação: Kitchensink
Vamos 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
28. Se você chegou até aqui...
… e ainda temos tempo, podemos enfim programar.
Vamos criar nossa própria aplicação!
(prática)