20
VRaptor Um framework MVC focado em desenvolvimento ágil Alex Ferreira R Trajano [email protected]

VRaptor - uni7.edu.brVRaptor Um framework MVC focado em desenvolvimento ágil Alex Ferreira R Trajano [email protected]. Servlets Base das aplicações web que usam a linguagem

  • Upload
    others

  • View
    8

  • Download
    1

Embed Size (px)

Citation preview

  • VRaptor

    Um framework MVC focado em desenvolvimento ágil

    Alex Ferreira R [email protected]

  • Servlets

    Base das aplicações web que usam a linguagem Java API com nível relativamente baixo Muito código para pouca funcionalidade Grande chances de ter código repetido entre as classes

  • Servlets

    Toneladas de getParameter e de configurações no web.xml

  • Injeção de dependências

    E se tudo o que eu preciso já chegar prontinho e bonitinho pra ser utilizado pelos meus métodos?

    Bacana !

  • Injeção de dependências

    #FAIL

  • VRaptor

    ● Made in Brazil zil zil

    ● Framework MVC

    ● Baseado nos princípios:○ Inversão de controle○ Injeção de dependências○ Convenção sobre configuração

    ● Encapsula a javax.servlet

  • Controllers

    ● São classes Java

    ● Recebem requisições do usuário num determinado contexto

    ● Possuem métodos que executam tarefas específicas

    ● Tem que ser anotados com @Resource para que seus métodos públicos sejam visíveis para os clientes

    ● Podem receber dependências através do construtor ou

    através dos parâmetros dos métodos

  • CarrosController

  • Views

    ● Por padrão, são páginas JSP convencionais

    ● Ao terminar a execução do método no Controller, o VRaptor vai fazer o dispatch da requisição para o jsp adequado.

    ○ A convenção para a view padrão é: /WEB-INF/jsp//.jsp

    ● É possível alterar a convenção padrão, até mesmo processar tipos de resposta diferentes de html, como xml e json

  • View do método listar de CarrosController

    O retorno de qualquer método do Controller irá ser disponibilizado na sua respectiva view

  • Acessando os métodos do controller

    Convenção: http://www.meu_site.com/projeto/controller/metodo

    Método listar da classe CarrosControllerhttp://www.meu_site.com/loja/carros/listar

    Método salvar da classe CarrosController

    http://www.meu_site.com/loja/carros/salvar

  • Components

    ● Classes que, normalmente, pertencem à camada de modelo

    ● Devem ser anotadas com @Component pra que o VRaptor possa injetá-las onde for necessário

    ● Podem receber suas dependências através do construtor

    ● Possuem tempo de vida diferenciado dos controllers

  • CarrosDao

    O tempo de vida default é o de requisição, ou seja, é construído um objeto CarrosDao a cada requisição feita pelo usuário

  • Escopos - Tempo de vida dos Components

    Se você anotar seus componentes com:

    ● @RequestScoped: o componente será criado e destruído a cada requisição feita pelo usuário

    ● @SessionScoped: o componente será criado e só será

    destruído ao final da sessão

    ● @ApplicationScoped: o componente será criado quando a aplicação iniciar e só será destruído quando a aplicação for finalizada

    ● @PrototypeScoped: o componente será criado sempre que

    requisitado por alguma dependência

  • ComponentFactory

    É necessário quando um componente não faz parte do seu projeto, ou seja, quando não é possível anotá-lo com @Component.

    OOOOU

    Quando é necessário que o VRaptor crie objetos "customizados" por você para serem injetados em outras classes da sua aplicação

  • ComponentFactory

    ● Deve ser anotado com @Component● Deve implementar a interface ComponentFactory

  • Fluxo de uma requisição no VRaptor

  • TDD

  • Finalizando...

    E que fim levou a agilidade que se fala no título da apresentação?

  • That's all...

    vraptor.caelum.com.br

    Alex Ferreira R [email protected]