ads

sábado, 24 de abril de 2010

Comparação: EJB 3 versus Spring - Qual utilizar?

O objetivo dos frameworks é esconder a complexidade dos desenvolvedores (como, por exemplo, controle de transações, segurança e persistência), facilitar o reúso de código, melhorar a produtividade e conseqüentemente melhorar a qualidade do software. E neste ponto podemos dizer que tanto Spring quanto o EJB 3 cumprem muito bem este objetivo.

O que podemos dizer então sobre os dois frameworks:

  • O framework Spring é um framework popular, Open Source e é desenvolvido inicialmente pela empresa Interface21 Inc. Sua arquitetura é baseada principalmente em arquivos de configuração XML. O framework Spring não é um padrão de mercado e não possui apoio de grandes empresas como IBM, Oracle e Sun.
  • O framework EJB 3 é um padrão de mercado definido pela JCP e é suportado pelas maiores empresas que utilizam J2EE. Possuem implementações disponíveis pelas empresas Jboss e Oracle. EJB 3 faz forte uso de anotações disponíveis a partir de Java 5. As versões anteriores de EJB se mostraram pouco produtivas e complicadas, o que foi modificado na versão 3 do framework.


Uma vantagem que vejo é o fato de EJB 3 ser independente de empresas. Como exemplo disto, temos o fato do Oracle usar o TopLink como implementação da especificação JPA e o JBoss ter como implementação o Hibernate.

Por outro lado temos que podemos rodar o Spring em qualquer servidor de aplicação, mas pelo fato do Spring não ser um padrão da indústria estamos travados ao Spring e os serviços fornecidos por ele.

Outra vantagem do EJB 3 é o fato de como o framework está fortemente acoplado com o servidor, estes servidores podem melhorar suas performance atuando em conjunto com o framework. A integração entre JTA e JPA com os servidores é bem alta o que faz com que os servidores sejam extremamente otimizados para este tipo de operação com EJB3.
Uma vantagem do Spring seria a facilidade de utilizar a injeção de quaisquer componentes. Com EJB 3 só se possui controle dos componentes que são Beans do EJB e também do contexto de persistência.

Com relação a XML ou anotação, temos EJB 3 utilizando preferencialmente anotações e Spring utilizando preferencialmente XML. Isto, podemos dizer que é a gosto do freguês. Particularmente prefira a anotações por ser menos verboso, mais robusto, além de possuir verificação de consistência em tempo de compilação.

Como conclusão, temos que ambos, são ótimos frameworks, sendo que cada um deles possui suas vantagens. Particularmente em um projeto novo decidiria pelo EJB 3 devido ao maior suporte das grandes empresas e por ser um padrão.

Nenhum comentário: