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

1o projeto = aprendizado = aprendizado = stack basica = servlets + jsp + jdbc

[quote=renanreismartins]1o projeto = aprendizado = aprendizado = stack basica = servlets + jsp + jdbc[/quote]²

3

Vai apanhar mais, porém é apanhando que se aprende.

4

[quote=ozelo]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?
[/quote]

Se vc faz uma pergunta destas e lhe dizem que é para aprender JDBC é o equivalente a “como acendo meu fogão ? => bata uma pedra na outra”

JDBC foi importante. É claro que não doi aprender e é bom, mas é essencial ? não mais.

Spring é mais simples. Para fazer um site de loja é suficiente. O Spring MVC ajuda muito na parte de view (não use servlets diretamente nem jsp) e o FreeMarker é lega para criar o html. Assim vc não vai incorrer em tentação e fazer um monte de gambe no jsp.
A parte de dados use o Spring Data com backend de hibernate por exemplo. Como servidor o tomcat é simples e bom.

Depois que vc souber estas coisas vc pode criar aplicações fácilmente. Não vai fazer de si um expet em java, mas vai realizar seu objetivo. Se vc quiser realmente aprender vc pode usar jsp em vez de freemarker, usar o hibernate diretamente em vez do Spring Data , mas não vale a pena usar servelts. Servelts é para quem cria frameworks, não para quem cria aplicações ( hoje usamos o Modelo 3 que não usa Servlets)

Para a parte de cadastros pode ser que o SpringMVC não ajude muito. Isso é mais para a cara da loja em si. Para o backoffice dê uma olhada no Vaadin que vai ajudá-lo a var formulários e coisas do tipo de forma mais simples. Mas é um topico avançado. Só use se sentir vontade e confiança.

Então isto é orientado a resultados. Se vc quiser realmente apender e ter o sistema feito em 3 anos, vc pode ir pelo EJB3 + JSF + JPA + JSP + TagLibs + Servlets + JDBC. É legal aprender, mas não é rápido.

Concordo totalmente com o sergiotaborda, os frameworks estão ai pra serem usados, pelo jeito esse seu projeto é serio já, para venda, e não para aprendizado.
Recomendaria também usar direto um framework, e Spring também…

concordo que tem q usar fw por questoes de simplicidade e produtividade, porém, na minha humilde opniao usar hibernate, sem ter noção de como funciona uma java.sql.Connection faria o profissional ficar sem as bases necessárias.

Usar um framework mvc, sem ter estudado servlet a mesma coisa, no fundo vc sabe fazer, mas nao tem ideia de como funciona… mas como citei, apenas opniao pessoal

abrassss

Concordo com o renanreismartins.
A idéia de usar esses frameworks é para facilitar a vida.
Agora se você nem entende as complicações de usar servlet ou o jdbc puro, não vai entender o porque do framework existe ou as bases dele.
Além de quem garante que você nunca mais vai mexer com isso. Eu já tive que fazer manutenção em um sistema que era servlet puro.

E quando você precisar fazer um sql na mão ou usar de alguma coisa de servlet não vai saber fazer.

Não falo para não aprender o framework, agora dizer que a base não é para ser aprendida aí também não.

[quote=lele_vader]Concordo com o renanreismartins.
A idéia de usar esses frameworks é para facilitar a vida.
Agora se você nem entende as complicações de usar servlet ou o jdbc puro, não vai entender o porque do framework existe ou as bases dele.
Além de quem garante que você nunca mais vai mexer com isso. Eu já tive que fazer manutenção em um sistema que era servlet puro.

E quando você precisar fazer um sql na mão ou usar de alguma coisa de servlet não vai saber fazer.

Não falo para não aprender o framework, agora dizer que a base não é para ser aprendida aí também não.[/quote]

Ninguem está dizendo que a base não precisa ser aprendida. O que está sendo dito é que ela não precisa ser aprendida primeiro.

Se e quando a pessoa tiver problemas com connection ou servlet ela vai procurar aprender para resolver o problema. É um aprendizado JIT (just in time) :D.

Se formos por ai, as pessoas teriam que aprender o que é UnitOfWork e DomainStore antes de usar o Hibernate. Alguém aqui se lembra/sabe que o Session do Hibernate é um UnitOfWork ?
Ou ter que aprender como funciona um Proxy e ter usado a classe Proxy na vida antes de usar um EJB remote interface.
Ou ter que aprender a resolver grafos de dependência antes de usar o Spring (ou o Maven).
Não, não é assim que funciona.

Frameworks são exatamente para vc não ter que pensar muito no como funciona. Simplesmente funciona.
Quando der problema, ou bug, ai a pessoa vai ter que correr atrás.

Eu gosto de saber onde me meto antes de usar as coisas. Mas não considero uma boa dica que todo o mundo faça isso.

Excelente explicação. Gostei do aprendizado JIT :smiley: rsrs

E concordo com vc até certo ponto, não precisamos conhecer os conceitos mais avançados para usar um framework. Faz sentido.

Porém ainda acredito que exista uma profundidade minima que deva ser alcançada.

Não preciso saber como um motor queima combustivel para que eu possa dirigir, porém, preciso saber que o motor é movido a combustivel, para que no caso de uma pane basica, no caso falta de combustivel, eu saiba como resolver.

Neste caso preciso saber ao menos como funciona o basico.

PS: não estou discordando que dá pra aprender os frameworks sem conhecer a api mais baixa. Mas acho que devemos saber ao menos o minimo.

grande abrassssss