No JEE 6 é a especificação que tem como propósito unir os m...

Próximas questões
Com base no mesmo assunto
Q111524 Programação
No JEE 6 é a especificação que tem como propósito unir os modelos de componentes do JSF Managed-Beans com o EJB, proporcionando um modelo de fácil implementação para aplicações web
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - Contexts and Dependency Injection (CDI).

A especificação Contexts and Dependency Injection (CDI), introduzida no Java EE 6, é uma parte fundamental do ecossistema Java para desenvolvimento de aplicações corporativas. O CDI permite integrar diferentes camadas da aplicação de maneira elegante e tipo-segura, proporcionando recursos avançados de gerenciamento de ciclo de vida dos componentes, injeção de dependências, e um modelo unificado de event handling.

Esta questão aborda a integração entre os modelos de componentes do JavaServer Faces (JSF), especificamente os Managed Beans, com o modelo de Enterprise JavaBeans (EJB). O CDI serve como uma ponte entre esses dois mundos, trazendo os benefícios do EJB para os Managed Beans do JSF e vice-versa. Isso significa que desenvolvedores podem usar anotações para definir beans gerenciados pelo container, fazer injeção de dependências de forma desacoplada, e aproveitar serviços transacionais e de segurança do EJB em beans do JSF.

Para responder essa questão corretamente, é necessário entender o propósito e funcionalidade do CDI dentro do universo Java EE. As demais alternativas não cumprem a função descrita no enunciado:

  • Bean Validation (alternativa B) é usado para validar a entrada de dados nos beans.
  • Expression Language (EL) (alternativa C) fornece uma linguagem para realizar queries e operações em tempo de execução em páginas JSP e JSF.
  • Bibliotecas padrão para o JSP (alternativa D) são usadas para o desenvolvimento de páginas web dinâmicas utilizando JavaServer Pages.
  • Enterprise JavaBeans (EJB) (alternativa E) é um modelo de componentes para a lógica de negócios, mas por si só não é responsável pela integração entre os Managed Beans do JSF e EJB, função essa desempenhada pelo CDI.

O uso do CDI em aplicações web facilita o desenvolvimento, pois reduz a necessidade de configurações boilerplate, promove o desacoplamento e incentiva a boa prática de programação orientada a aspectos, tornando a alternativa A a correta para a questão apresentada.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

CDI is a set of services that, used together, make it easy for developers to use enterprise beans along with JavaServer Faces technology in web applications.

Fonte: The Java EE 6Tutorial
Em seu lançamento, uma das maiores críticas para a adoção do EJB era a complexidade exigida para o programador na hora de usar suas APIs, o que levou ao desenvolvimento e popularização de frameworks mais práticos, como Spring e Hybernate.
A partir da versão EJB 3.0, buscou-se o uso intenso de annotations como uma forma de simplificar a sintaxe e o uso dessas APIs, dentre elas, JSF.

Annotations permitem que certas operações, como injeções de dependência, se tornem mais simples.

Particularmente, na JSR 299: Contexts and Dependency Injection (CDI), define-se um conjunto de serviços que permite que componentes JEE como servlets, EJB e POJO possam ser manipulados dentro do ciclo de vida da aplicação com escopos bem definidos.  CDI também permite que componentes JEE, EJB e JSF ManagedBeans serem injetados com baixo acoplamento: unificando e simplificando o modelo de programação entre estas duas tecnologias. Dentro dos muitos serviços, CDI traz suporte a transação dentro do web container, facilitando a utilização de recursos relacionados as fontes de dados e mecanismos de persistência.
Por exemplo, com CDI fica muito fácil construir uma aplicação web que acesse um banco de dados usando como persistência  a especificação do JPA.


Fonte: http://fernandofranzini.wordpress.com/2009/11/06/dependency-injection-com-jsf-2-0/
Caro Asdrubal,

Suas explicações são sempre muito interessantes e de grande serventia.

Obrigado pela ajuda nas questões!

a-

A injeção de dependencia implica instancia e remocao de objeto ocorrendo de modo transparente no codigo fonte. é feita por annotations que solicitam ao application server quand um recurso for necessario a aclasse

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo