Bom, estou iniciando agora o desenvolvimento Web e de cara me deparei com este paradoxo, utilizar o CDI ou Spring ? Pois percebi que ambos realizam a Injeção de Dependência .
Eu diria: depende do tipo de servidor que você pretende usar. Se for usar um servidor full-JEE como o Jboss ou Glassfish, eu usaria o CDI, pois ele já acompanha o servidor. No caso de usar um Web conteiner como Tomcat ou Jetty, o Spring pode ser uma boa …
Estava lendo aqui… o que o Weld tem haver com tudo isso ? Porque dizem que devemos usar o Weld no CDI ?
CDI é uma especificação, assim como JPA. O Weld é uma implementação dessa especificação, assim como Hibernate:
Hibernate — implementa —> JPA ,
assim como
Weld — implementa —> CDI.
Uma 3a opção é o Google Guice.
Ah entendi. Mas neste caso qual a vantagem em usar CDI ao invés de Spring ?
JPA é uma implementação, a especificação de persistência em Java se encontra aqui:
vai colocar uma lib no classpath da app, sendo que o J2EE full ja te da o que precisa ?
Pois é mais estou lendo que além do DI o Spring também possibilita programação orientada a aspectos e mais algumas funcionalidades que apenas o CDI não tem.
Se vai precisar dessas funcionalidades, use Spring!
Apenas lembre-se de que, se usar a injeção de dependências dele, seus objetos vão ficar anêmicos.
tem certeza ?
o que gostaria de fazer que fosse orientado a aspectos que com DI não pudesse fazer ?
se fosse usar aparte de segurança do Spring colocaria a lib sabendo que pode usar JAAS ?
cheguei a comprar um livro de Spring, mas sendo sincero, nos dias de hoje com tudo que a spec J2EE tem, não veja mais a necessidade de utilização do Spring.
Eita hehehe… Então o melhor é partir para o CDI mesmo ?
Obs: Na empresa que trabalho utilizamos Spring, por isso gostaria de começar com Spring também.
juro que não sou xiita rsrsrsrsr, é que brother, na real mesmo, tem que havaliar o contexto, se o pessoal é acostumado com a ferramenta e desenvolve rapido utilizando Spring quem sabe não é legal usar ? eu em particular nos dias de hoje não usaria mas as vezes dependendo do escopo do projeto pode valer a pena, abraços.
E o mapeamento de requisições?
E o mapeamento de requisições?[/quote]
não entendi sua pergunta brother, o que tem o mapeamento de requisições ? fala daquelas url´s mapeadas na controller ? depende do framework que vai utilizar ou até mesmo com servlets no webxml ou com servlet 3 via annotation.
Exatamente isso. E não vai precisar de um framework pra DI no final das contas? Não gosto muito do Spring tmb - apesar de ter começado nele - mas tem algumas coisas nele que facilitam. Só acho que no fim das contas pode estar trocando 6 por meia dúzia.
[quote=$ERVER]
Se vai precisar dessas funcionalidades, use Spring!
Apenas lembre-se de que, se usar a injeção de dependências dele, seus objetos vão ficar anêmicos.[/quote]
Usar DI do Spring não deixa objetos anêmicos.
Pode explicar o que você quis dizer com isso?