Prévia do material em texto
GABARITO | Avaliação Final (Discursiva) - Individual Semipresencial (Cod.:690595) Peso da Avaliação 4,00 Prova 40904078 Qtd. de Questões 2 Nota 3,20 O CDI (Context and Dependency Injection) é uma especificação que permite a integração entre os containers WEB e EJB. A utilização do CDI para injeção de dependências possui várias vantagens, como a simplificação do código-fonte, baixo acoplamento entre os objetos e a flexibilidade no gerenciamento do ciclo de vida dos objetos. Neste contexto, descreva o motivo pelo qual a utilização de injeção de dependência torna o código-fonte mais simplificado e com baixo acoplamento. Resposta esperada A simplificação de código-fonte ocorre pois os objetos da aplicação são liberados da tarefa de trazer suas próprias dependências, tornando-os livres para executar suas regras de negócios. Além disso, injetando uma classe, esta pode ser reutilizada em qualquer um dos métodos da classe que ela foi injetada, não necessitando instanciá-la cada vez que necessitar utilizá-la. O baixo acoplamento ocorre devido ao objeto conhecer suas dependências apenas por sua interface pública, sendo possível desta forma ser trocada a implementação da dependência, sem que o objeto dependente seja afetado. Minha resposta A simplificação de código-fonte ocorre pois os objetos da aplicação são liberados da tarefa de trazer suas próprias dependências, tornando-os livres para executar suas regras de negócios. Além disso, injetando uma classe, esta pode ser reutilizada em qualquer um dos métodos da classe que ela foi injetada, não necessitando instanciá-la cada vez que necessitar utilzá-la. O baixo acoplamento ocorre devido ao objeto conhecer suas dependências apenas por sua interface pública, sendo possível desta forma ser trocada a implementação da dependência, sem que o objeto dependente seja afetado. Uma das principais classes em uma aplicação desenvolvida pelo framework Java Server Faces (JSF) são os Managed Beans, os quais servem para intermediar as camadas View e Model da aplicação. Neste sentido, uma das funcionalidades de uma classe Managed Bean é receber requisições da tela e enviá-las para a camada Model. Neste contexto, analise o código-fonte a seguir e disserte explicando os códigos- fonte das linhas 9, 10 e 17. Resposta esperada Na linha 9, é especificada a nomenclatura que o Managed Bean será chamado na página HXTML. Na linha 10, é especificada a anotação "SessionScoped", definindo que a classe será criada em memória (instanciada) uma única vez enquanto durar a sessão do usuário atual, e quando fechada a sessão do usuário, este objeto será eliminado da memória (destruído). Na linha 17, é implementado um método que VOLTAR A+ Alterar modo de visualização 1 2 retorna o valor do atributo "mensagem" do Managed Bean "HelloWorldSessionMB", imprimindo no console o valor do atributo quando for método invocado. Minha resposta Na linha 9, especifica a nomenclatura que o Managed Bean será chamado na página HXTML. Na linha 1O, é especificada a anotação "SessionScoped", definindo que a classe será criada em memória instanciada uma única vez enquanto durar a sessão do usuário atual, e quando fechada a sessão do usuário, este objeto será eliminado da memória. Na linha 17, é implementado um método que retorna o valor do atributo "mensagem" do Managed Bean "HelloWorldSessionMB", imprimindo no console o valor do atributo quando for método invocado.