É bom o Spring ou o EJB é melhor?

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?

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

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

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

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 ?

=]

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