Play Framework Java para web sem Servlets e com diversão
Fernando BoaglioPlay Framework
Agradecimentos
Agradeço a você por querer aprender mais, à minha esposa por sempre estar ao meu lado, aos meus pais e a Deus por tudo.
E segue o jogo!
Sobre o autor
Formado pela UNESP em BCC, foi instrutor oficial da Sun Microsystems e da Oracle Education. Atualmente contribui para alguns projetos open source, como KDE, Jenkins entre outros.
Prefácio
O melhor presente que se dá é aquele que você gostaria de ganhar.
Esse é o livro que eu gostaria de ler quando estava começando a usar o Play Framework, ele é o meu presente para você, aproveite!
Público alvo
Esse livro foi feito para programadores Java (iniciantes e veteranos) que buscam pelo desenvolvimento rápido e divertido de aplicações web.
Quickstart – a primeira parte do livro
Para rapidamente configurar o seu ambiente de desenvolvimento, disponibilizar a sua aplicação bonita, acessando banco de dados e publicando na nuvem não será preciso ler todos os capítulos, apenas os quatro primeiros.
Melhorando sua aplicação – a segunda parte do livro
Os capítulos restantes complementam a sua aplicação com a criação de serviços, autenticação e o uso de alguns plugins imperdíveis para o seu sistema.
Código fonte
O código fonte desse livro está disponível no endereço https://github.com/boaglio/play2-casadocodigo, onde foram criadas tags para cada um dos capítulos, para facilitar a compreensão da evolução do nosso sistema de filmes cult.
Sumário
- 1 - Hello Play Java e Hello Play Scala
- 1.1 - O que é o Play
- 1.2 - O que não é o Play
- 1.3 - Instalação do Play
- 1.4 - Sua primeira aplicação Java
- 1.5 - A estrutura da aplicação Play
- 1.6 - Subindo sua aplicação Play
- 1.7 - Olá Scala
- 1.8 - Preciso saber Scala?
- 1.9 - Próximos passos
- 2 - Navegando com estilo
- 2.1 - Bem-vindo ao Eclipse
- 2.2 - Navegação
- 2.3 - Adicionando estilo
- 2.4 - Organizando as páginas
- 2.5 - Próximos passos
- 3 - Persistindo seus dados
- 3.1 - Próximos passos
- 4 - Publicando em qualquer lugar
- 4.1 - Rede local
- 4.2 - Servidor Java EE
- 4.3 - Deploy na nuvem
- 4.4 - Próximos passos
- 5 - Melhorando o input do usuário
- 5.1 - Isolando mensagens
- 5.2 - Tratando erros
- 5.3 - Páginas customizadas
- 5.4 - Próximos passos
- 6 - Criando serviços
- 6.1 - Acessando serviço via web
- 6.2 - Debugando pelo Eclipse
- 6.3 - Acessando serviço via mobile
- 6.4 - Próximos passos
- 7 - Integrando nas redes sociais
- 7.1 - Criando uma aplicação no Facebook
- 7.2 - Integração via JavaScript
- 7.3 - Integração via SecureSocial
- 7.4 - Próximos passos
- 8 - Melhorias na aplicação
- 8.1 - Configurando HTTPS
- 8.2 - Lendo constantes globais
- 8.3 - Upload de imagem
- 8.4 - Testando sua aplicação
- 8.5 - Próximos passos
- 9 - Continue seus estudos
- 9.1 - Para saber mais
- 10 - Apêndice A - Play console em detalhes
- 11 - Apêndice B - Instalação e configuração do PostgreSQL
- 12 - Apêndice C - Instalação e configuração do Android
Hello Play Java e Hello Play Scala
1.1 - O que é o Play
O Play é um framework que redefine o desenvolvimento web em Java. O seu foco é o divertido desenvolvimento no qual a interface HTTP é algo simples, flexível e poderoso, sendo uma alternativa limpa para as opções Enterprise Java infladas. Ele foca na produtividade do desenvolvedor para as arquiteturas RESTful, e sua vantagem em relação às linguagens e frameworks não Java, como Rails e PHP, é que ele usufriu de todo o poder da Java Virtual Machine (JVM).
1.2 - O que não é o Play
O Play não é um framework padrão Java EE, como Spring, Struts ou VRaptor – ele usa uma arquitetura extremamente simples.
Uma aplicação JSF roda sobre a API de Servlet, que por sua vez roda em um container Java EE, que fica dentro de um HTTP Server.
Perceba que todo desenvolvedor é obrigado a trabalhar com essas quatro camadas. Já com o Play, temos apenas duas: o próprio Play framework e o seu HTTP server embutido (Netty).
Além disso, ele não é apenas um framework web, ele é uma solução completa que envolve persistência e muito mais recursos, como:
- Servidor HTTP integrado;
- Acesso completo à interface HTTP;
- API de serviços REST;
- Código cujas mudanças é possível testar com um simples reload de página;
- Engine de template de alta performance;
- Permitir que sua aplicação funcione para vários idiomas;
- Compilação dos arquivos estáticos de sua aplicação;
- Suporte a I/O assíncrono;
- Validação HTML do input do usuário;
- Cache integrado;
- Sistema de build próprio e integrado (sbt);
- Plataforma akka criada para ambiente distribuído e à prova de falhas;
- Persistência de dados.
Confira a visão geral do Play na figura *
1.3 - Instalação do Play
A instalação do Play é bem simples e feita em apenas dois passos. O primeiro deles é fazer o download do site http://www.playframework.org. Depois disso, faça o ajuste conforme o seu sistema operacional.
Instalação no Windows
Descompacte o pacote na raiz e renomeie o diretório compactado para play
. Exemplo: o arquivo play-2.2.1.zip
criará o diretório C:\play-2.2.1\
. Renomeie-o para C:\play\
.
Edite a variável PATH
conforme a figura *, adicionando no final do PATH
o valor de ;C:\play\
.
Atrás de um proxy
Se sua internet estiver atrás de um proxy, altere o arquivo C:\play\framework\build.bat
na linha de comando Java e adicione os parâmetros:
-Dhttp.proxyUser=<meu-usuario>
-Dhttp.proxyPassword=<minha-senha>
-Dhttp.proxyHost=<servidor>
-Dhttp.proxyPort=<porta>
Caso seja lançada uma atualização do Play, e você queira atualizar, renomeie o diretório C:\play\
para C:\play-old\
e descompacte a nova versão em C:\play\
.
Instalação em Linux
Descompacte o pacote na raiz, por exemplo: /home/fb/play-2.2.1/
, e crie um link simbólico para esse diretório chamado play
, como:
ln -s /home/fb/play-2.2.1/ /home/fb/play
Caso haja uma atualização, descompacte a nova versão e atualize o link simbólico para o novo diretório.
Adicione no arquivo $HOME/.bashrc
ou em $HOME/.bash_profile
o comando: export PATH=$PATH:$HOME/play/
.
Instalação em Mac OSX
Descompacte o pacote na raiz, por exemplo: /home/fb/play-2.2.1/
, e crie um link simbólico para esse diretório chamado play
, como:
ln -s /home/fb/play-2.2.1/ /home/fb/play
Adicione no arquivo /etc/paths
o diretório $HOME/play/
.
Em uma eventual atualização, descompacte a nova versão e atualize o link simbólico para o novo diretório.
Se preferir usar o Homebrew, apenas rode o comando brew install play
.
Testando sua instalação
Depois de configurado, abra o console do seu sistema operacional e digite play help
. O resultado esperado está na figura *.
Pronto! Agora que o Play está instalado, podemos começar a nossa primeira aplicação!
1.4 - Sua primeira aplicação Java
Para criar a nossa primeira aplicação, é só digitar play new <nome-da-aplicação>
:
fb@cascao ~/workspace-play > play new play-java
_
_ __ | | __ _ _ _
| '_ \| |/ _' | || |
| __/|_|\____|\__ /
|_| |__/
play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51),
http://www.playframework.com
The new application will be created in /home/fb/workspace-play/
play-java
What is the application name? [play-java]
>
Depois escolha a opção 2, que vai criar uma aplicação Play Java:
Which template do you want to use for this new application?
1 - Create a simple Scala application
2 - Create a simple Java application
> 2
OK, application play-java is created.
Have fun!
fb@cascao ~/workspace-play >
E pronto, sua aplicação está criada!
1.5 - A estrutura da aplicação Play
Vamos apenas olhar o que foi criado, sem muitos detalhes:
.
|-- app (arquivos Java da aplicação)
| |-- controllers
| | `-- Application.java
| `-- views
| |-- index.scala.html
| `-- main.scala.html
|-- build.sbt
|-- conf (arquivos de configuração)
| |-- application.conf
| `-- routes
|-- project
| |-- build.properties
| `-- plugins.sbt
|-- public (arquivos estáticos)
| |-- images
| | `-- favicon.png
| |-- javascripts
| | `-- jquery-1.9.0.min.js
| `-- stylesheets
| `-- main.css
|-- README
`-- test (arquivos para testes)
|-- ApplicationTest.java
`-- IntegrationTest.java
1.6 - Subindo sua aplicação Play
A administração de sua aplicação é feita pelo play console
, que possui diversos comandos de gerenciamento.
Para chamar o console, dentro do diretório criado na sua aplicação digite play
, e depois o comando run
para subir.
fb@cascao ~/workspace-play/play-java > play
[info] Loading project definition from
/home/fb/workspace-play/play-java/project
[info] Set current project to play-java (in build
file:/home/fb/workspace-play/play-java/)
_
_ __ | | __ _ _ _
| '_ \| |/ _' | || |
| __/|_|\____|\__ /
|_| |__/
play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51),
http://www.playframework.com
> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.
[play-java] $ run
[info] Updating {file:/home/fb/workspace-play/play-java/
}play-java...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
--- (Running the application from SBT, auto-reloading is
enabled) ---
[info] play - Listening for HTTP on /0.0.0.0:9000
(Server started, use Ctrl+D to stop and go back to the
console...)
Em seguida, é possível acessar a aplicação através do browser pelo endereço http://localhost:9000/, obtendo um resultado semelhante à figura *.
Para derrubar o servidor, tecle Control+D
e, para sair do play console
, digite exit
.
1.7 - Olá Scala
Durante o livro, vamos focar no Java, mas criar e rodar uma aplicação em Scala é parecido:
fb@cascao ~/workspace-play > play new play-scala
_
_ __ | | __ _ _ _
| '_ \| |/ _' | || |
| __/|_|\____|\__ /
|_| |__/
play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51),
http://www.playframework.com
The new application will be created in /home/fb/workspace-play/
play-scala
What is the application name? [play-scala]
>
Depois selecione a opção 1, que vai criar uma aplicação Play Scala:
Which template do you want to use for this new application?
1 - Create a simple Scala application
2 - Create a simple Java application
> 1
OK, application play-scala is created.
Have fun!
fb@cascao ~/workspace-play > cd play-scala/
fb@cascao ~/workspace-play/play-scala > play
[info] Loading project definition from
/home/fb/workspace-play/play-scala/project
[info] Set current project to play-scala
(in build file:/home/fb/workspace-play/play-scala/)
_
_ __ | | __ _ _ _
| '_ \| |/ _' | || |
| __/|_|\____|\__ /
|_| |__/
play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51),
http://www.playframework.com
> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.
[play-scala] $ run
[info] Updating {file:/home/fb/workspace-play/play-scala/
}play-scala...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
--- (Running the application from SBT, auto-reloading is
enabled) ---
[info] play - Listening for HTTP on /0.0.0.0:9000
(Server started, use Ctrl+D to stop and go back to the
console...)
[info] Compiling 5 Scala sources and 1 Java source to
/home/fb/workspace-play/play-scala/target/scala-2.10/classes...
[info] play - Application started (Dev)
O resultado também é semelhante à figura *.
1.8 - Preciso saber Scala?
Felizmente não. O core do Play 2 é feito em Scala, mas ele é perfeito para Java, pois podemos trabalhar com ele sem aprender uma nova linguagem e ambos usam a nossa querida JVM.
1.9 - Próximos passos
Certifique-se de que aprendeu:
- visão geral do Play Framework;
- como instalar o Play;
- como criar sua primeira aplicação em Java e Scala.
Agora que já molhamos os pés, nos próximos capítulos vamos aprender a nadar criando o primeiro CRUD.
Dados do produto
- Número de páginas:
- 147
- ISBN:
- 978-85-66250-42-8
- Data publicação:
- 02/2014