É bom o Spring ou o EJB é melhor?

25 respostas
C

Oi amiguinhos. Quero saber qual eu deveria fazer curso primeiro, de EJB ou Spring que ouço muitos falarem?

25 Respostas

R

Spring.
Como já disseram por ai,“EJB é uma solução procurando desesperadamente por um problema”,apesar dos avanços que houveram no EBJ 3.0.

A

Eu não sei o seu nível de conhecimento em plataforma Java, mas por experiência de mercado sempre utilizei muito mais Spring do que EJB.
Que fique bem claro…tudo depende do projeto em que cair. Se fosse você, e tivesse a disposição para fazer um curso voltado a um desses dois…escolheria o Spring com certeza, porém, nunca descartando a necessidade de se conhecer também um pouco de EJB.

D

Eu gostei mais do EJB acho mais organizado além de ser padrão.

Baixe netbeans+glassfish depois é so se divertir.

F

Eu sugeriria aprender os 2…muitos conceitos que ambos utilizam, são independentes deles, por exemplo DI, JTA, etc…

R

Diabo Loiro:
Eu gostei mais do EJB acho mais organizado além de ser padrão.

Baixe netbeans+glassfish depois é so se divertir.

Olá.
O que vc quis dizer com “organizado”?
E quanto a ser padrão,pq isso torna EJB uma opção melhor?

Abraços.

O

O EJB faz parte hoje do padrão do java ee.
E está sempre se atualizando junto com o jee
Gostei muito dele.

D

Exato eu particularmente estudei primerio Spring 3 e depois EJB 3.1 , ainda sim curti mais o EJB.

Eu tinha exatamente essa duvida no começo por acaso foi spring mais é muito importante estudar os dois.

Acredito que o spring seja mais facil de começar.

R

Acredito que ambos são ótimas tecnologias, cada uma com suas vantagens e desvantagens. O EJB carrega um histórico ruim, mas conseguiu aumentar a qualidade na última versão, já o Spring ainda é alvo de reclamações com relação a certas configurações XML.
Em termos de funcionalidade, ambos oferecem recursos que suprem às maiores necessidades em grandes projetos como Controlo Transacional, Segurança e AOP.
Estará ganhando em aprender os dois, indiferente da ordem.

D

Olá.
O que vc quis dizer com “organizado”?
E quanto a ser padrão,pq isso torna EJB uma opção melhor?

Padrao JEE - ESPECIFICAÇÃO.

Fiz uma app com Spring MVC e outra igual com JSF 2.0 e EJB 3.1, e na minha opnião fico muito mais legal com EJB, muito mais facil e a integraçao entre EJB,JSF e Container é muito boa.

Com o CDI avançando no JEE 6 não senti falta do Spring.

mais não vamos sair do scopo do tópico por opniões pessoais.

C

meninos, no entanto ejb é um jar tambem? pois aqui a gente usa spring e o spring ele e um jar… o ejb e um conceito, uma especificacao do que o spring faiz? mas como uso o ejb se ele é so uma espeficação?

C

me falaram que o spring tem divisões… quais são essas? ?

Open Source
Spring Framework
Spring Web Flow
Spring BlazeDS Integration
Spring Web Services
Spring Roo
Spring Security (Acegi Security)
Spring Batch
Spring Integration
Spring AMQP
Spring Gemfire
Spring Payment Services
SpringSource dm Server (Eclipse Virgo)
SpringSource dm Server Tools
SpringSource Bundlor
Spring Dynamic Modules For OSGi™ Service Platforms (Eclipse Gemini)
Spring LDAP
Spring IDE

Spring Extensions
Spring Rich Client
Spring .NET
Spring BeanDoc
Deprecated projects
Spring JavaConfig
Spring Modules (deprecated in favor of Spring Extensions)

Fonte: SpringSource

A

Olha, o EJB é uma espeficação. O Spring acredito que não siga essa especificação… Alguém pode me ajudar a responder melhor?

R

Diabo Loiro:
Olá.
O que vc quis dizer com “organizado”?
E quanto a ser padrão,pq isso torna EJB uma opção melhor?

Padrao JEE - ESPECIFICAÇÃO.

Fiz uma app com Spring MVC e outra igual com JSF 2.0 e EJB 3.1, e na minha opnião fico muito mais legal com EJB, muito mais facil e a integraçao entre EJB,JSF e Container é muito boa.

Com o CDI avançando no JEE 6 não senti falta do Spring.

mais não vamos sair do scopo do tópico por opniões pessoais.

Mas o escopo do topico é justamente esse:opinioes pessoais,experiências…
EJB 1.0 tbm é especificação,e veja a m*** que foi feita.

D

Tanto as tecnologias EJB quando Spring oferecem a sua aplicações recurso como injeção de dependencia por exemplo.

O Spring é modularizado por isso para cada conjunto de recursos voce tem baixar um pacote.

O Spring não segue a especificação Java da Sun/Oracle.

D

Mas o escopo do topico é justamente esse:opinioes pessoais,experiências…
EJB 1.0 tbm é especificação,e veja a m*** que foi feita.

Me refiro ao EJB do 3 para frente.

Realmente EJB 2x era lixo.

Mais Spring 2x tem muito XML tbm.

T+

V

Bom, Já trabalhei com os dois e acho que:

Apesar do EJB 3 ser padrão e tal, acho o Spring melhor.

Pequenas Diferentes q identifiquei:

Spring injeta qualquer classe (Desde q ela seja anotada, é claro) (ilimitado)
EJB só injeta em classes gerenciadas pelo Container (SessionBeans, Servlets, Managed Bean, etcc…) (limitado)

O Spring MVC é um excelente controlador, uma alternativa ao JSF.
O Spring possui praticamente todas as funcionalidades do EJB 3 e acrescenta bastante módulo a mais.

Vc consegue desenvolver uma aplicação inteira utilizando apenas Spring, desde a view até o BD, já com EJB, isto não é possível.

acho q é isso…

R

valfrido.silva:
Bom, Já trabalhei com os dois e acho que:

Apesar do EJB 3 ser padrão e tal, acho o Spring melhor.

Pequenas Diferentes q identifiquei:

Spring injeta qualquer classe (Desde q ela seja anotada, é claro) (ilimitado)
EJB só injeta em classes gerenciadas pelo Container (SessionBeans, Servlets, Managed Bean, etcc…) (limitado)

O Spring MVC é um excelente controlador, uma alternativa ao JSF.
O Spring possui praticamente todas as funcionalidades do EJB 3 e acrescenta bastante módulo a mais.

Vc consegue desenvolver uma aplicação inteira utilizando apenas Spring, desde a view até o BD, já com EJB, isto não é possível.

acho q é isso…


E além de tudo isso que vc citou,o Spring não precisa de uma carroça feito JBOSS(ou similares) pra rodar em cima…

F

o JBoss deixa mágoas…

D

Acho que voces tem dar uma olhada melhor no Context and Dependecy Injection do (CDI) JEE6


O Spring MVC é um excelente controlador, uma alternativa ao JSF.

Spring mvc vc tem fazer todo html na mão ou seja não tem componentes, é um bom controlador mais na parte visual não se tem nada.

Para quem não gosta de um Container EJB, voce pode usar o EJB lite no tomcat.

Eu gosto dos 2 realmente e acho uma questão pessoal, para min EJB é muito mais estruturado e robusto por exemplo para uma aplicação bancaria nacional (Enterprise) onde voce usa um container Robusto que te garanta coisas e tenha suporte.

O Spring é bem legal mais acho que para aplicações não tão grandes, mais leve e lembrando que isso não quer dizer que sirva para coisas pequenas.

Na minha humilde opinião.

J

Aproveitando o tópico de quem é melhor ou não, o pessoal tem meio que apostado que depois da nova implementação do EJB, o Spring não vai ser mais usado, sendo que o EJB é que vai engolir essa tendência de mercado. Opniões sobre esses rumores?

J

Bom dia,

Eu costumo dizer que, se no desenvolvimento de software havia chocolate, então haveria um SPRING chocolate.

Na minha opinião no JavaEE 6 com :
EJB 3.1 com Embeddable container, Weld : CDI 1.0 , Guice : @Inject 1.0

Não precisa de SPRING para nada.

O que faz a mais valia de SPRING e que ele e um INTEGRADOR de tecnologias diferentes.

O JSR 299 : Java Contexts and Dependency Injection (CDI) e muito potente.

Por exemplo com "Spring Dynamic Modules for OSGi™ Service Platforms" ele pretende separar os bundles do aplicativo da API OSGi.
De toda a maneira Spring DM não serve para nada visto que existe no OSGi: Declarative Services and Dependencies.
Ok, é verdade que a Spring contribuiu a mudar a especificação OSGi …

O problema é que depois depende-se de SPRING. Sabendo que é um sistema fechado porque gerado por 4 a 5 pessoas no mondo, e o chefe e Rod.

Cons
—> Relies on 4-5 smart people
—> Only one implementation

Fontes:

Segundo Emiley J. :

Transaction management

EJB
* Must use a JTA transaction manager.
* Supports transactions that span remote method calls.

Spring
* Supports multiple transaction environments through its PlatformTransactionManager interface, including JTA, Hibernate, JDO, and JDBC.
* Does not natively support distributed transactions?it must be used with a JTA transaction manager.

Declarative transaction support

EJB
* Can define transactions declaratively through the deployment descriptor.
* Can define transaction behavior per method or per class by using the wildcard character *.
* Cannot declaratively define rollback behavior?this must be done programmatically.


Spring
* Can define transactions declaratively through the Spring configuration file or through class metadata.
* Can define which methods to apply transaction behavior explicitly or by using regular expressions.
* Can declaratively define rollback behavior per method and per exception type.

Persistence

EJB
Supports programmatic bean-managed persistence and declarative container managed persistence.

Spring
Provides a framework for integrating with several persistence technologies, including JDBC, Hibernate, JDO, and iBATIS.

Declarative security

EJB
* Supports declarative security through users and roles. The management and implementation of users and roles is container specific.
* Declarative security is configured in the deployment descriptor.

Spring
* No security implementation out-of-the box.
* Acegi, an open source security framework built on top of Spring, provides declarative security through the Spring configuration file or class metadata.

Distributed computing

EJB
Provides container-managed remote method calls.

Spring
Provides proxying for remote calls via RMI, JAX-RPC, and web services.

Cordialmente

A

Olha, meu termômetro que é o apinfo.com tem mostrado que a procura de profissionais que conheçam EJB tem sido maior que Spring.

J

Bom dia,

Com todo isto tinha esquecido de responder.

[ Oi amiguinhos. Quero saber qual eu deveria fazer curso primeiro, de EJB ou Spring que ouço muitos falarem? ]

Comece por EJB 3.1 no quadro de Java EE 6 por que é um STANDARD. E Depois estude SPRING 3 por que é muito usado.

Cordialmente

M

Esse post é antigo …

E hoje ainda continua esta essa guerra entre EJB ou Spring Frameworks.

– Muitas empresas querem o Spring pois roda em qualquer servidor, não é necessário ter um servidor com ejb container para rodar sua aplicação.

– Muitas pessoas dizem que Spring é melhor, pois nos conseguimos fazer tudo funcionar em panos limpos e com EJB fica tudo a serviço do Container EJB. Tipo um @Statefull ( não sabemos como ele armazena os dados na memoria e etc … )

– E com Spring não é necessario dividir a arquitetura de seu projeto ( EAR, WAR e JAR ). No EJB 3.1 também não é necessario com a chegada do EJB Lite , mas o EJB Lite ele tem menos recursos =I

No entanto não estou defendendo o Spring, pois uso EJB e tenho conhecimentos de ambos.

Porem foi o que eu achei em pesquisas e bloggers até então. Essa é minha grande duvida na atualidade.

Se eu detono em EJB os meus seguintes projetos ou faço em Spring por ser melhor e talzz . E para saber qual o melhor no mercado na parte de vagas =]

Por favor, continuem o debate sobre a atualidade ( 2014 ) , qual a desvantagem de um em cima do outro ?

=]

J

O ideal seria ter o cenário a ser discutido, senão vira discussão abstrata ou condições infinitas.

Criado 6 de janeiro de 2011
Ultima resposta 27 de jun. de 2014
Respostas 25
Participantes 13