EJB ou Spring
Olá,
Sou iniciante e pretendo fazer meu primeiro projeto (Controle de uma loja de veículos). Pela grande variedade de framewoks existente em Java, estou na duvida em qual usar. Para uma pessoa que não esta muito familiarizada, qual tecnologia é mais facil de aprender e usar? O EJB 3.1 ou o Spring?
Muito obrigado.
Raphael
Sou iniciante e pretendo fazer meu primeiro projeto (Controle de uma loja de veículos). Pela grande variedade de framewoks existente em Java, estou na duvida em qual usar. Para uma pessoa que não esta muito familiarizada, qual tecnologia é mais facil de aprender e usar? O EJB 3.1 ou o Spring?
Muito obrigado.
Raphael
Raphael Ozelo.
Curtidas 0
Melhor post
Henrique Weissmann
24/01/2013
O EJB tem se aproximado cada vez mais do Spring, então no final das contas, vai ser mais uma questão de preferência no futuro.
Porém, pensando no agora, posso te dizer algumas coisas.
* Spring é um modelo de desenvolvimento mais leve. Bem mais leve: você não precisa de um servidor de aplicações pra poder executar seu código. Isto é uma vantagem monstruosa em tempo de desenvolvimento e execução de testes.
* Para testes, o Spring ainda é mais fácil de se trabalhar. Escrever testes unitários e integrados com ele é mais fácil por causa da própria natureza leve do framework (se bem que projetos como o JBoss Arquillan facilitam a vida hoje de quem programa com EJB)
* A grande crítica ao Spring era o fato de haver muita configuração XML. Já faz alguns anos que isto não é verdade (desde a versão 2 pra ser exato). Então, esta crítica foi pro saco. No entanto, se fosse XML, mesmo assim você teria uma vantagem interessante com relação ao EJB que é o fato d enão precisar alterar suas classes incluindo anotações para poder torná-las gerenciáveis pelo container.
COm relação ao EJB, é o fato de ser uma especificação né? Com isto você tem ao menos em teoria a garantia de que seu código vai ser o mais portável possível e você não terá vendor lock in. Bom, isto na prática raramente acontece, e migração entre servidores EJB ainda é uma coisa trabalhosa (tá ficando menos, mas ainda é).
Um ponto interessante no EJB é que, como disse, tá se aproximando do Spring a cada iteração. Porém sempre vai estar atrás pelo fato de ser desenvolvido por um comitê, e comitês sempre se baseiam no menor denominador comum. Tipo: CDI. Muita gente diz que é o substituto pro container do Spring, não é. Ele possuí inclusive menos recursos, porque eles pegam o que há de comum em diversas tecnologias (Pico Container, Spring, Guice) e tiram o que há de comum em todas elas. Então sempre as tecnologias nas quais o comitê se baseiam vão ter recursos mais avançados e modernos.
Daqui a uns 5, 6 anos, pode ser que EJB supere o Spring. Pode ser: mas na prática, não vejo isto acontecendo tão cedo. E levando em consideração a quantidade de código legado. Talvez nunca ocorra.
Porém, pensando no agora, posso te dizer algumas coisas.
* Spring é um modelo de desenvolvimento mais leve. Bem mais leve: você não precisa de um servidor de aplicações pra poder executar seu código. Isto é uma vantagem monstruosa em tempo de desenvolvimento e execução de testes.
* Para testes, o Spring ainda é mais fácil de se trabalhar. Escrever testes unitários e integrados com ele é mais fácil por causa da própria natureza leve do framework (se bem que projetos como o JBoss Arquillan facilitam a vida hoje de quem programa com EJB)
* A grande crítica ao Spring era o fato de haver muita configuração XML. Já faz alguns anos que isto não é verdade (desde a versão 2 pra ser exato). Então, esta crítica foi pro saco. No entanto, se fosse XML, mesmo assim você teria uma vantagem interessante com relação ao EJB que é o fato d enão precisar alterar suas classes incluindo anotações para poder torná-las gerenciáveis pelo container.
COm relação ao EJB, é o fato de ser uma especificação né? Com isto você tem ao menos em teoria a garantia de que seu código vai ser o mais portável possível e você não terá vendor lock in. Bom, isto na prática raramente acontece, e migração entre servidores EJB ainda é uma coisa trabalhosa (tá ficando menos, mas ainda é).
Um ponto interessante no EJB é que, como disse, tá se aproximando do Spring a cada iteração. Porém sempre vai estar atrás pelo fato de ser desenvolvido por um comitê, e comitês sempre se baseiam no menor denominador comum. Tipo: CDI. Muita gente diz que é o substituto pro container do Spring, não é. Ele possuí inclusive menos recursos, porque eles pegam o que há de comum em diversas tecnologias (Pico Container, Spring, Guice) e tiram o que há de comum em todas elas. Então sempre as tecnologias nas quais o comitê se baseiam vão ter recursos mais avançados e modernos.
Daqui a uns 5, 6 anos, pode ser que EJB supere o Spring. Pode ser: mas na prática, não vejo isto acontecendo tão cedo. E levando em consideração a quantidade de código legado. Talvez nunca ocorra.
GOSTEI 2
Mais Respostas
Davi Costa
07/12/2012
EJB é mais fácil
att Davi
att Davi
GOSTEI 0
Josué Júnior
07/12/2012
EJB 3.1 está mais fácil, porém não vá matar uma formiga com uma bazuca!!!!
Tem uma revista Java Magazine 74 que ilustra o que tem de novo no EJB 3.1 não utilize o EJB 3.0!!! A não ser que queira desenvolver componentes distribuídos.
Tem uma revista Java Magazine 74 que ilustra o que tem de novo no EJB 3.1 não utilize o EJB 3.0!!! A não ser que queira desenvolver componentes distribuídos.
GOSTEI 0
Danilo Gomes
07/12/2012
Vai ser mais fácil usar EJB 3.1 mesmo, que já vem no Java EE 6.
Mais simples que configurar o Spring.
Mais simples que configurar o Spring.
GOSTEI 0
Diogo Souza
07/12/2012
Essa é um tema bem relativo.. Você pode conferir nesse link o assunto detalhado, boa discussão: http://blog.caelum.com.br/java-ee-versus-spring-retomando-a-discussao/
EJB 3.1 é um 3.0 melhorado. Não vejo problemas na modularização... Aconselharia a não usar a versão anterior a essas... :)
EJB 3.1 está mais fácil, porém não vá matar uma formiga com uma bazuca!!!!
Tem uma revista Java Magazine 74 que ilustra o que tem de novo no EJB 3.1 não utilize o EJB 3.0!!! A não ser que queira desenvolver componentes distribuídos.
Tem uma revista Java Magazine 74 que ilustra o que tem de novo no EJB 3.1 não utilize o EJB 3.0!!! A não ser que queira desenvolver componentes distribuídos.
EJB 3.1 é um 3.0 melhorado. Não vejo problemas na modularização... Aconselharia a não usar a versão anterior a essas... :)
GOSTEI 0
Danilo Gomes
07/12/2012
Henrique, é muito bom tê-lo como participante do fórum, conheci um pouco do seu trabalho pelo Grails Brasil.
Li algumas matérias recentemente e achei interessante o ponto de vista: Spring não é concorrente do EJB.
O Spring nunca teve essa intenção. A ideia da Spring é ter uma solução própria para tudo aquilo que está em falta no mercado.
Acho que, assim, sempre poderemos esperar novidades no Spring.
Li algumas matérias recentemente e achei interessante o ponto de vista: Spring não é concorrente do EJB.
O Spring nunca teve essa intenção. A ideia da Spring é ter uma solução própria para tudo aquilo que está em falta no mercado.
Acho que, assim, sempre poderemos esperar novidades no Spring.
GOSTEI 0
Marcos Souza
07/12/2012
Henrique Lobo ,
Muito bom seus comentários,
Eu venho expor minha experiência de 1 anos e meio de desenvolvimento que é quase nada !
Fiquei 1 ano desenvolvendo aplicações em EJB 3.1 , utilizando Lite e outras aplicações em Full.
Ao Ler seu livro ( "Vire o jogo Spring Frameworks") , livro sensacional e em 3 meses eu reparei que com spring é mais facil e tem aquela jogada que você comentou !
-- Roda em qualquer servidor .
-- Não deixamos parte nenhuma um EJB Container fazer nossos desenvolvimentos.
-- Não é necessário dividir uma arquitetura . exemplo (EAR , WAR e JAR )
Venho agradecer por ter escrito esse livro sensacional , onde eu recomendo a todos !!!
E que fez mudar minha total ideia em desenvolver aplicações em EJB =]
Use Spring MVC , Data e Security ... E comprem Vire o Jogo com Spring Frameworks =]
Muito bom seus comentários,
Eu venho expor minha experiência de 1 anos e meio de desenvolvimento que é quase nada !
Fiquei 1 ano desenvolvendo aplicações em EJB 3.1 , utilizando Lite e outras aplicações em Full.
Ao Ler seu livro ( "Vire o jogo Spring Frameworks") , livro sensacional e em 3 meses eu reparei que com spring é mais facil e tem aquela jogada que você comentou !
-- Roda em qualquer servidor .
-- Não deixamos parte nenhuma um EJB Container fazer nossos desenvolvimentos.
-- Não é necessário dividir uma arquitetura . exemplo (EAR , WAR e JAR )
Venho agradecer por ter escrito esse livro sensacional , onde eu recomendo a todos !!!
E que fez mudar minha total ideia em desenvolver aplicações em EJB =]
Use Spring MVC , Data e Security ... E comprem Vire o Jogo com Spring Frameworks =]
GOSTEI 0