SóProvas


ID
659956
Banca
FCC
Órgão
TRE-CE
Ano
2012
Provas
Disciplina
Programação
Assuntos

No âmbito do Enterprise Java Beans 3.0, considere:

I. Utiliza a API JMS, facilita a quebra de acoplamento entre o cliente e o destino (Point-to-point ou Publish- subscriber), e é acionado de forma assíncrona.

II. Tratam os eventos nas fases do ciclo de vida dos EJB, por meio de anotações, tais como, @PostConstruct, @PrePassivate e @PostActivate.

III. Permitem que um código customizado seja aplicado para um EJB, interceptam a chamada do método do EJB para executar um código intermediário, e podem ser configurados no próprio Bean ou em classes externas.

As afirmações contidas nos itens I, II e III referem-se, respectivamente, a

Alternativas
Comentários
  • Message-Driven Bean
    Um MDB é um componente que permite a aplicações JEE processar mensagens assincronamente pois atua como um JMS listener, de maneira similar a um event listener (a diferença principal é que o MDB recebe mensagens ao invés de eventos). As mensagens podem ser enviadas a qualquer componente JEE -uma aplicação cliente, outro bean, um componente web- ou aplicação JMS ou ainda algum sistema que não usa JEE.
    A diferença mais marcante entre um MDB, session beans e entity beans é que clientes não acessam MDBs por interfaces.
    Em diversos aspectos, um MDB se assemelha a um session bean sem estado (stateless):
    • Uma instância MDB não mantém dados ou estados de comunicação para um cliente específico;
    • Todas as instâncias de um MDB são equivalentes, permitindo que o container EJB direcione a mensagem a qualquer instância MDB; 
    • O container pode agrupar essas instâncias para permitir que streams de mensagens sejam processados de maneira paralela ou concorrente;
    • Um único MDB pode processar mensagens de múltiplos clientes.
    Fonte: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts5.html

    Callback Methods
    No contexto EJB, são métodos que permitem que o container notifique ao bean eventos em seu ciclo de vida, sem necessidade de intervenção do usuário, conforme definições do javax.ejb.EntityBean.  São chamados automaticamente pela aplicação/sistema quando uma condição particular ocororre, como num tratamento de eventos ou métodos do ciclo de vida de um servlet (ex: um método callback é o destroy(), que é chamado automaticamente pelo containder quando termina sua função.
    Contudo, esses métodos podem também ser definidos ou chamados por anotações, em momentos específicos do ciclo de vida de uma entidade: 


    Fontes:
    http://www.allinterview.com/showanswers/4927.html
    http://docs.oracle.com/cd/E12840_01/wls/docs103/programming/annotate_dependency.html
    http://today.java.net/pub/a/today/2007/05/22/using-annotations-in-java-ee-5.html#annotations-for-callbacks
    http://java.boot.by/scbcd5-guide/ch06s04.html

    Interceptor
    Um interceptor é uma classe usada para fazer injeções em invocações de método ou eventos do ciclo de vida que ocorrem em uma classe-alvo associada.  Um interceptor realiza tarefas como logar e auditar, que são separadas das regras de negócio de uma aplicação, e ocorrem repetidas vezes no ciclo de vida da aplicação, de maneira "cruzada" (cross-cutting).
    Interceptor permitem especificar códigos para essas tarefas em um único local, facilitando sua manutenção. 
    Exemplo de uso de interceptors:

    Fontes:
    http://docs.oracle.com/javaee/6/tutorial/doc/gkhjx.html
    http://docs.oracle.com/javaee/6/tutorial/doc/gkigq.html
    http://docs.oracle.com/cd/E14148_02/wlcp/ocsg41_otn/extension/interceptors.html

    Session Beans
    Um SB representa um único cliente no Servidor de Aplicações. Para acessar uma aplicação lançada num servidor, o cliente invoca os métodos do SB, que isola o cliente da complexidade das regras de negócio.
    De maneira similar a uma sessão interativa, um SB não pode ser compartilhado, tem de ter apenas um cliente, não persiste (seus dados não são salvos em bases de dados) e, após finalizada a sessão, o SB é terminado e não há mais qualquer associação com o cliente.
    Exemplo de ciclo de vida de um SB com estado:

    Fontes:
    http://docs.oracle.com/javaee/5/tutorial/doc/bnbmt.html
    http://docs.oracle.com/javaee/5/tutorial/doc/bnbly.html

    Timer
    Timers ou Timer Services são largamente usados para aplicações que dependem de tempo, como funções periódicas, temporizadas ou agendadas. A partir do EJB 3.0, é comum seu uso por Anotações (@Schedule, @Timeout) e Injeções de Dependência.
    Fonte:
    http://www.javabeat.net/articles/3-ejb-30-timer-services-an-overview-1.html
    http://docs.oracle.com/cd/E14571_01/web.1111/e13719/implementing.htm

    Injeção de Dependência
    É a capacidade de injetar componentes numa aplicação de maneira segura (especialmente quanto à tipagem), incluindo a capacidade de escolher o tempo em que haverá seu lançamento e a escolha de uma implementação específica de uma interface.

    Java Persistence API
     JPA  é uma API padrão do java para persistência que deve ser implementada por frameworks que queiram seguir o padrão. A JPA define um meio de mapeamento objeto-relacional para objetos Java simples e comuns (POJOs), denominados beans de entidade. Diversos frameworks de mapeamento objeto/relacional como o Hibernate implementam a JPA (a API mesma é definida no pacote javax.persistence). Também gerencia o desenvolvimento de entidades do Modelo Relacional usando a plataforma nativa Java SE e Java EE.
    A figura na explicação do Callback Method representa o ciclo de uma entidade.
    Fonte: http://docs.oracle.com/javaee/6/tutorial/doc/bnbpy.html
  • JMS > Java Message Service > Message Driven Bean ;-)