Home

Principal

Simplificando com EJB3 PDF Imprimir E-mail
Avaliação do Usuário: / 2
PiorMelhor 
Java - EJB3
Escrito por Geraldo Felipe   
Seg, 13 de Abril de 2009 15:08

Muito se falava de EJB, mas poucos foram os casos de aplicações que o utilizaram na prática e obtiveram êxito. Afinal criar um EJB (versão 2.1) era muito complexo e ainda tinha a sua utilização que era complicada.
Resumindo, o Conceito era muito bom (para alguns até maravilhoso), mas na prática a utilização do Spring junto com um ou dois frameworks resolvia o problema.

Depois de tanto se falar com respeito as dificuldades no EJB, a comunidade foi ouvida e eis que surge o EJB3.
Simples, sem aquele monte de xml. E fácil, qualquer POJO pode ser um EJB, basta anotar.

 

Veja um exemplo:

 

Interface Remota: CalculadoraRemote.java

 
package br.com.brazilianforce.exemplos.ejb3.calculadora;
 
import javax.ejb.Remote;
 
/**
 * Interface Remota do Serviço Calculadora.
 */
@Remote
public interface CalculadoraRemote {
 
  /**
   * Efetua cálculo e retorna o valor.
   *
   * @param numero1
   * @param numero2
   * @param operacao
   * @return 
   */
  public Double cacular(Double numero1, Double numero2, Integer operacao);
 
}
 

Bean: CalculadoraBean.java

 
package br.com.brazilianforce.exemplos.ejb3.calculadora;
 
import javax.ejb.Stateless;
 
/**
 * Implementação do Serviço Calculadora.
 */
@Stateless
public class CalculadoraBean implements CalculadoraRemote {
 
  /*
   * (non-Javadoc)
   * 
   * @see
   * br.com.brazilianforce.exemplos.ejb3.calculadora.CalculadoraRemote#cacular
   * (java.lang.Integer, java.lang.Integer, java.lang.Integer)
   */
  @Override
  public Double cacular(Double numero1, Double numero2, Integer operacao) {
    Double resultado = null;
    switch (operacao) {
    // subtração
    case 1:
      resultado = numero1 - numero2;
      break;
    // multiplicação
    case 2:
      resultado = numero1 * numero2;
      break;
    // divisão
    case 3:
      resultado = numero1 / numero2;
      break;
    // adição
    default:
      resultado = numero1 + numero2;
      break;
    }
    return resultado;
  }
 
  /**
   * Teste Serviço Calculadora
   *
   * @param args
   */
  public static void main(String[] args) {
    System.out.println(new CalculadoraBean().cacular(10D, 20.3D, 0));
    System.out.println(new CalculadoraBean().cacular(10.1D, 20D, 1));
    System.out.println(new CalculadoraBean().cacular(10.3D, 20.1D, 2));
    System.out.println(new CalculadoraBean().cacular(22D, 3D, 3));
  }
}
 

Cliente: CalculadoraClient.java

 
package br.com.brazilianforce.exemplos.ejb3.calculadora;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
 
/**
 * Cliente do Serviço Calculadora.
 * 
 */
public class CalculadoraClient {
 
  /**
   * Teste Serviço Calculadora no JBoss.
   * 
   * @param args
   */
  public static void main(String[] args) {
    // padrão JBoss para jndi remoto: <nome-ejb>/remote
    final String jndiName = "CalculadoraBean/remote";
    try {
      Context ic = new InitialContext();
      Object obj = ic.lookup(jndiName);
      CalculadoraRemote calculadora = (CalculadoraRemote) obj;
      System.out.println(calculadora.cacular(10D, 20.3D, 0));
      System.out.println(calculadora.cacular(10.1D, 20D, 1));
      System.out.println(calculadora.cacular(10.3D, 20.1D, 2));
      System.out.println(calculadora.cacular(22D, 3D, 3));
    } catch (NamingException e) {
      e.printStackTrace();
    }
  }
}
 
Pronto!

Note que não configuramos nenhum XML ou qualquer outro arquivo, criamos apenas POJOs.

 

Realmente o EJB3 veio para simplificar e com certeza entra na lista de possíveis tecnologias na hora de criar a arquitetura de um software em JAVA.

 

Apesar de tornar fácil a criação e utilização ainda é um EJB, sendo assim trás uma série dependências com outros serviços. Por isso, a escolha das tecnologias na criação da arquitetura deve ser imparcial, deixando de lado qualquer modismo existente no mercado e lembrando que o que vale na realidade é a necessidade do cliente.

 

Grande Abraço!

Comentários
Adicionar Pesquisar
Caleo     |201.17.183.xxx |2009-05-16 10:56:13
Olá Geraldo,

gostei do seu post, simples, didático e objetivo. Realmente não
ter aqueles inúmeros XML´s é muito bom.

E quanto ao desempenho da versão 3
em relação à versão anterior. Melhoras significativas nessa parte
também??

Abs,
Caleo
Lax     |94.251.49.xxx |2009-12-01 15:58:13
?????????? ???????! ????? ? $ 2500 ??? ? ?????? ????? ??????. ?????????? ??????? ????
Fihitag     |94.251.49.xxx |2009-12-03 15:37:53
????? ????? ??????? ? ?????? ????? ????????? ??????, ?? ??? ?? ?????, ??? ???? ?????? ??????. (?????)
??? ????? ????????, ????? ????? ??????. [?????
???????]
Escrever comentário
Nome:
Email:
 
Website:
Título:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.25 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
Copyright © 2010 Brazilian Force Team. Todos os direitos reservados.
Joomla! é um Software Livre com licença GNU/GPL v2.0.