Javafree
Página Inicial do Fórum > Spring Framework

Spring vs Java EE ?



Criar novo tópico   Responder tópico


  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 13:03:44

    O assunto foi começado aqui: http://javafree.uol.com.br/viewtopic.jbb?t=888893

    A ideia é que nós continuemos a falar sobre isso.

    _________________

    site: www.otaviojava.com.br



  1. davi.costa
    Posts:2520


    Comment Arrow

    Publicado em: 28/01/2013 13:12:15

    Essa vai render! Já expus minha opinião como citado acima pelo Otavio em outro post, mas vou sair ainda mais do muro.
    Se for iniciar um projeto, se apenas eu for programar e tenha plena liberdade de escolha nos frameworks com certeza a injeção de dependências seria com Spring que ainda está um pouco a frente nesse assunto.

    abcs
    _________________

    att Davi Costa
    Analista/Arquiteto Java
    Especialista em Engenharia de Sistemas
    ScrumMaster Certified

  1. Comment Arrow

    Publicado em: 28/01/2013 13:14:10

    [quote="otavio_java"]O assunto foi começado aqui: http://javafree.uol.com.br/viewtopic.jbb?t=888893

    A ideia é que nós continuemos a falar sobre isso.



    Show.

    Vamos lá, primeiro nada contra o JEE, muito pelo contrário, é uma plataforma com diversas especificações importantíssimas.

    Mas sabemos, que o Java é mestre em lançar algo pessimo, dai vem alguém como Rod Johnson e Gavin King, por exemplo, criam uns frameworks e anos depois, o JEE se adéqua a esses frameworks.

    Que bom que surgem frameworks "por fora", só assim, todos nós ganhamos, inclusive o JEE, que evolui.
    _________________

    "Retém a instrução e não a largues. guarda-a, porque ela é a tua vida." (Pr 4:13)



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 13:41:58

    O JEE, está evoluindo e muito e está cada vez mais participativo.
    A grande vantagem é que ele é um padrão, ou seja, não depdende de uma única empresa.

    _________________

    site: www.otaviojava.com.br



  1. ricoarrigoni
    Posts:2302


    Comment Arrow

    Publicado em: 28/01/2013 16:42:49

    Bacana, primeiro tópico que promete ser bem movimentado na nova sala

    Eu não conheço nenhum dos dois a fundo, mas pelo que ouvi dizer o Spring eh o framework mais popular que está no mercado de java, certo ?
    _________________

    Moderador JavaFree - Ricardo Arrigoni

    Como Inserir Códigos no post
    Como Inserir LINKS no post
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 19:32:08

    "Spring vs Java EE" é uma concepção bastante errada.
    Na realidade, é "Spring *com* Java EE", e sempre foi assim desde o início.

    A história é a seguinte: quando o Spring surgiu, o objetivo por trás do projeto era facilitar o desenvolvimento de aplicações corporativas. O EJB já havia pego tração e se mostrado uma plataforma maravilhosa para criarmos sistemas robustos e escaláveis em um ambiente distribuído. Infelizmente, ele era usado de uma maneira bastante equivocada: grande parte do seu foco estava na criação de aplicações distribuídas, e não aplicações mais simpels como ocorre em 90% dos casos.

    Foi quando surgiu um livro fantástico do Rod Johnson chamado "Java EE development without EJB" que nos fez repensar o real uso desta tecnologia e também apresentar o Spring como solução.

    De lá pra cá, muita coisa mudou: veio o EJB3, que é ordens de magnitude mais fácil de trabalhar que a versão anterior, tivemos o JPA e, mais recentemente, vêmos o CDI.

    A pergunta que se faz é: vale à pena usar o Spring? Na minha opinião (que eu sei ser suspeita) vale. E vale muito. Por que isto:

    1) O Java EE é mantido por um comitê: sendo assim, seu desenvolvimento sempre se baseia (ao menos em 99% dos casos) na inclusão na plataforma do menor denominador comum do que é encontrado fora dela. Pegue o CDI por exemplo: ele tem inspiração no Pico Container, Spring e Google Guice. Dos três, pegou apena so básico em comum. Sendo assim, no que ocorre fora do comitê você sempre vai ver tecnologias mais modernas que as escolhidas pelo comitê. Isto pode mudar, é verdade, mas não vejo isto ocorrendo.

    2) O modelo de desenvolvimento. Apesar do CDI estar mais próximo do Spring, o desenvolvimento com Spring ainda é mais leve. Tanto no sentido de custo computacional como das próprias dependências. Apesar de ser visto de modo negativo, o XML nos permite usar qualquer POJO no container do Spring SEM que precisemos alterar uma linha de código. Com anotações precisamos recompilar, lembrem-se disto (ah, e no Spring o XML é opcional viu? Pode trablahar igual no CDI se quiser).

    3) O ecosistema Spring. Há subprojetos excelentes lá dentro, como por exemplo o Spring Data e o Security, que se integram perfeitamente com o Spring Core.

    4) Alguns dos recursos do Spring ainda são superiores: controle transacional mais fino e fácil de implementar, AOP mais evoluída com AspectJ, por exemplo, o suporte a DAO também é bastante interessnate, e mais alguns.

    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 19:35:04

    Kiko, vc é a pessoa mais suspeita do forum para falar bem do Spring.
    A propósito, parabéns pelo livro, meus colegas falaram muito bem dele, e eu estarei comprando para brincar com ele no carnaval.


    _________________

    site: www.otaviojava.com.br



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 19:35:58

    [quote="ricoarrigoni"]Bacana, primeiro tópico que promete ser bem movimentado na nova sala

    Eu não conheço nenhum dos dois a fundo, mas pelo que ouvi dizer o Spring eh o framework mais popular que está no mercado de java, certo ?



    Os dois realizam papel semelhante, mas a leveza do Spring é incomparável.

    _________________

    site: www.otaviojava.com.br



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 19:36:30

    E ainda tem mais: o bacana do Spring desde o primeiro momento é o fato de tornar o servidor de aplicações opcional. Soa estranho em Java dizer isto porque desenvolvemos na maior parte das vezes aplicações web, no entanto há um mercado desktop que ainda é bastante forte.

    E o Spring nos permite trabalhar com todos os recursos que citei acima (e os que não mencionei) neste ambiente. Então trazemos para este ambiente todos os recursos do servidor SEM o curso do servidor. Este é um uso muito comum do Spring.

    O fato de não precisar de um servidor trás também outro benefício interessante: escrever os testes fica mais fácil. Aliás, você pode, se quiser, testar os seus EJBs usando o Spring, sabiam? Com ele da pra mockar um servidor de aplicações Java EE de uma forma razoávelmente simples.

    Outra vantagem do Spring é o Spring MVC: apesar de não ser tão usado, é um framework muito poderoso. Tão poderoso que deu origem a um dos frameworks mais produtivos da plataforma Java que é o Grails.

    No final, é importante lembrar o seguinte: o Spring não compete e nunca competiu com o Java EE. Ele o complementa, tornando tarefas que são chatas de serem feitas mais simples de serem concluídas.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 19:38:56

    Legal, estou dando uma olhada no Spring Batch e no Security.
    Vocês recomendam ?
    o Spring Security funciona melhor que o JAAS ?
    _________________

    site: www.otaviojava.com.br



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 19:49:05

    O Spring Security é mais flexível. Ele te permite inclusive fazer o que o JAAS te permite de limitar o acesso a métodos de classes gerenciadas.
    E detalhe importante: você pode usá-lo *FORA* do container, ou seja, em sua aplicação desktop se quiser.

    É interessnate observar que nem todos os projetos da Spring são assim tão bacanas. O Spring WebServices por exemplo é completamente sem propósito: um troço contract-first que até hoje não consegui entender o ganho.

    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 19:51:51

    vale
    _________________

    site: www.otaviojava.com.br



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 28/01/2013 19:56:01

    Usamos o Spring Batch na empresa. Apesar de ter uma curva de aprendizado não tão suave, depois que pega o ritmo é de boa.

    Gosto do Spring, como o kicolobo falou, não se trata mais somente de Ioc. Tem todo um ecossistema a favor. Na empresa usamos:

    Spring-Batch
    Spring-MVC
    Spring-JDBCTemplate
    Spring-Remoting (RMI)
    Spring-Core
    E a integração com Hibernate/JSF também é tranquila.

    E graças ao pionerismo do Spring, o JEE ficou bem mais simples.

    Só uma dúvida em relação ao JEE. O CDI pode ser usado numa aplicação não-JEE facilmente?


    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 20:03:41

    [quote="ms27817"]Usamos o Spring Batch na empresa. Apesar de ter uma curva de aprendizado não tão suave, depois que pega o ritmo é de boa.

    Gosto do Spring, como o kicolobo falou, não se trata mais somente de Ioc. Tem todo um ecossistema a favor. Na empresa usamos:

    Spring-Batches
    Spring-MVC
    Spring-JDBCTemplate
    Spring-Remoting
    Spring-Core
    E a integração com Hibernate/JSF também é tranquila.

    E graças ao pionerismo do Spring, o JEE ficou bem mais simples.

    Só uma dúvida em relação ao JEE. O CDI pode ser usado numa aplicação não-JEE facilmente?



    Tem sim, o WeldSE
    _________________

    site: www.otaviojava.com.br



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 28/01/2013 20:04:22

    http://blog.gilliard.eti.br/tag/weld-se/
    _________________

    site: www.otaviojava.com.br



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 20:04:49

    Há uma implementação stand alone dele que se chama Weld, mantida pela JBoss. Talvez possa sim.

    Aliás, a documentação do Weld é um dos melhores textos que já li sobre IoC e DI. Vale muito à pena a leitura, mesmo que você jamais venha a usar CDI.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 28/01/2013 20:06:02

    Valeu pessoal, vou dar uma estudada no Weld.


    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. dicarte
    Posts:447


    Comment Arrow

    Publicado em: 28/01/2013 20:08:20

    Hummm, bom saber ....
    Mais um framework para a lista, hehe ...
    _________________

    Eduardo Dicarte
    Graduando Engenharia Mecânica
    Gerente de Configuração Java



  1. davi.costa
    Posts:2520


    Comment Arrow

    Publicado em: 28/01/2013 20:30:35

    Já que estamos citando alguns projetos do spring, vou citar o spring-integration que até a pouco estava meio parado infelizmente... não sei como tá hj. Se alguém souber pode se pronunciar.

    abcs
    _________________

    att Davi Costa
    Analista/Arquiteto Java
    Especialista em Engenharia de Sistemas
    ScrumMaster Certified



  1. thiagovpalmeir
    Posts:1456


    Comment Arrow

    Publicado em: 28/01/2013 20:31:23

    Seria possível trabalhar com Spring e Hibernate no mesmo projeto? Na realidade ele é usado frequentemente? Resumindo em que ajuda, no desempenho? Na persistência dos dados? Em que?
    _________________



  1. ricoarrigoni
    Posts:2302


    Comment Arrow

    Publicado em: 28/01/2013 20:34:12

    Rapaz, tópico tá bombando ein! DD

    QUanto aos frameworks Java, os únicos que eu tive algum contato até então foram:

    Hibernate, JSF, Struts MUITO POUCO rs

    Alguém sabe de dizer se é possível ou bom desenvolver app mobile(android) com Spring ?
    _________________

    Moderador JavaFree - Ricardo Arrigoni

    Como Inserir Códigos no post
    Como Inserir LINKS no post
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia



  1. davi.costa
    Posts:2520


    Comment Arrow

    Publicado em: 28/01/2013 21:08:06

    [quote="thiagovpalmeir"]Seria possível trabalhar com Spring e Hibernate no mesmo projeto? Na realidade ele é usado frequentemente? Resumindo em que ajuda, no desempenho? Na persistência dos dados? Em que?


    É possível sim e usadíssimo, digamos que ele está um passo além dos outros frameworks no serviço de injeção de dependência, ou seja, ele é bem performático e leve.

    abcs
    _________________

    att Davi Costa
    Analista/Arquiteto Java
    Especialista em Engenharia de Sistemas
    ScrumMaster Certified



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 21:30:55

    Oi thiagovpameir,

    sim, é possível trabalhar com Spring e Hibernate, e também com JPA.
    No caso, você não terá grandes vantagens do ponto de vista de performance: a vantagem está no modo como o Spring gerencia pra você o SessionFactory, evitando que você precise se preocupar demais com sua instanciação, obtenção de conexões do BD, etc.

    Há coisas interessantes por aí: por exemplo, o Spring gerencia as transações pra você de uma forma muito mais fácil do que você faria manualmente, o que te dá um ganho de produtividade (e talvez performance) muito grande.

    Além disto, o Spring também unifica a cadeia de excessões disparadas pelo Hibernate. Sendo assim, se no seu projeto você usa tanto JDBC quanto Hibernate, o Spring, você não precisa se preocupar em lidar com as excessões do Hibernate E do JDBC: elas serão normalizadas em uma terceira hierarquia de excessões, que engloba os dois, facilitando assim a escrita do seu código e também a sua manutenibilidade.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 21:31:59

    [quote="ricoarrigoni"]Rapaz, tópico tá bombando ein! DD

    QUanto aos frameworks Java, os únicos que eu tive algum contato até então foram:

    Hibernate, JSF, Struts MUITO POUCO rs

    Alguém sabe de dizer se é possível ou bom desenvolver app mobile(android) com Spring ?



    Sim, é possível. Da uma olhada neste link: http://www.springsource.org/spring-android

    Existe um projeto da SpringSource chamado Spring for Android que é justamente pra isto.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 21:33:50

    [quote="davi.costa"]Já que estamos citando alguns projetos do spring, vou citar o spring-integration que até a pouco estava meio parado infelizmente... não sei como tá hj. Se alguém souber pode se pronunciar.

    abcs



    O problema do Spring Integration é que ele possuí um concorrente atualmente práticamente imbatível: o Apache Camel. Então o pessoal acaba preferindo usar o Camel que o Integration pelas seguintes razões:

    * O Camel é muito mais maduro
    * O Camel possuí muito mias componentes
    * O Camel é muito mais rico em recursos

    E, pra arrebentar de vez o Integration....
    O Camel funciona com o Spring, de tal maneira que oferece a mesma possibilidade do Camel de usar o formato XML para descrever rotas com todas as vantagens acima.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. thiagovpalmeir
    Posts:1456


    Comment Arrow

    Publicado em: 28/01/2013 21:38:27

    [quote="thiagovpalmeir"]Seria possível trabalhar com Spring e Hibernate no mesmo projeto? Na realidade ele é usado frequentemente? Resumindo em que ajuda, no desempenho? Na persistência dos dados? Em que?



    Alguém?
    _________________



  1. ricoarrigoni
    Posts:2302


    Comment Arrow

    Publicado em: 28/01/2013 21:38:42

    [quote="kicolobo"][quote="ricoarrigoni"]Rapaz, tópico tá bombando ein! DD

    QUanto aos frameworks Java, os únicos que eu tive algum contato até então foram:

    Hibernate, JSF, Struts MUITO POUCO rs

    Alguém sabe de dizer se é possível ou bom desenvolver app mobile(android) com Spring ?



    Sim, é possível. Da uma olhada neste link: http://www.springsource.org/spring-android

    Existe um projeto da SpringSource chamado Spring for Android que é justamente pra isto.



    Holy shit! o bagui eh muito maior do que eu imaginava rs Muito irado esse spring!
    _________________

    Moderador JavaFree - Ricardo Arrigoni

    Como Inserir Códigos no post
    Como Inserir LINKS no post
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia



  1. ricoarrigoni
    Posts:2302


    Comment Arrow

    Publicado em: 28/01/2013 21:39:10

    Notei que a galera aqui do fórum gosta demais do Spring ein.. acho que demoramos muito pra criar essa sala rsrs
    _________________

    Moderador JavaFree - Ricardo Arrigoni

    Como Inserir Códigos no post
    Como Inserir LINKS no post
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 21:39:50

    [quote="thiagovpalmeir"][quote="thiagovpalmeir"]Seria possível trabalhar com Spring e Hibernate no mesmo projeto? Na realidade ele é usado frequentemente? Resumindo em que ajuda, no desempenho? Na persistência dos dados? Em que?



    Alguém?



    te respondi logo acima.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. ricoarrigoni
    Posts:2302


    Comment Arrow

    Publicado em: 28/01/2013 21:41:41

    [quote="kicolobo"]"Spring vs Java EE" é uma concepção bastante errada.
    Na realidade, é "Spring *com* Java EE", e sempre foi assim desde o início.

    A história é a seguinte: quando o Spring surgiu, o objetivo por trás do projeto era facilitar o desenvolvimento de aplicações corporativas. O EJB já havia pego tração e se mostrado uma plataforma maravilhosa para criarmos sistemas robustos e escaláveis em um ambiente distribuído. Infelizmente, ele era usado de uma maneira bastante equivocada: grande parte do seu foco estava na criação de aplicações distribuídas, e não aplicações mais simpels como ocorre em 90% dos casos.

    Foi quando surgiu um livro fantástico do Rod Johnson chamado "Java EE development without EJB" que nos fez repensar o real uso desta tecnologia e também apresentar o Spring como solução.

    De lá pra cá, muita coisa mudou: veio o EJB3, que é ordens de magnitude mais fácil de trabalhar que a versão anterior, tivemos o JPA e, mais recentemente, vêmos o CDI.

    A pergunta que se faz é: vale à pena usar o Spring? Na minha opinião (que eu sei ser suspeita) vale. E vale muito. Por que isto:

    1) O Java EE é mantido por um comitê: sendo assim, seu desenvolvimento sempre se baseia (ao menos em 99% dos casos) na inclusão na plataforma do menor denominador comum do que é encontrado fora dela. Pegue o CDI por exemplo: ele tem inspiração no Pico Container, Spring e Google Guice. Dos três, pegou apena so básico em comum. Sendo assim, no que ocorre fora do comitê você sempre vai ver tecnologias mais modernas que as escolhidas pelo comitê. Isto pode mudar, é verdade, mas não vejo isto ocorrendo.

    2) O modelo de desenvolvimento. Apesar do CDI estar mais próximo do Spring, o desenvolvimento com Spring ainda é mais leve. Tanto no sentido de custo computacional como das próprias dependências. Apesar de ser visto de modo negativo, o XML nos permite usar qualquer POJO no container do Spring SEM que precisemos alterar uma linha de código. Com anotações precisamos recompilar, lembrem-se disto (ah, e no Spring o XML é opcional viu? Pode trablahar igual no CDI se quiser).

    3) O ecosistema Spring. Há subprojetos excelentes lá dentro, como por exemplo o Spring Data e o Security, que se integram perfeitamente com o Spring Core.

    4) Alguns dos recursos do Spring ainda são superiores: controle transacional mais fino e fácil de implementar, AOP mais evoluída com AspectJ, por exemplo, o suporte a DAO também é bastante interessnate, e mais alguns.



    Seria bacana se o autor do tópico alterasse o título tirando esse VS, o que acham?
    _________________

    Moderador JavaFree - Ricardo Arrigoni

    Como Inserir Códigos no post
    Como Inserir LINKS no post
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 21:42:40

    [quote="ricoarrigoni"][quote="kicolobo"]"Spring vs Java EE" é uma concepção bastante errada.
    Na realidade, é "Spring *com* Java EE", e sempre foi assim desde o início.

    A história é a seguinte: quando o Spring surgiu, o objetivo por trás do projeto era facilitar o desenvolvimento de aplicações corporativas. O EJB já havia pego tração e se mostrado uma plataforma maravilhosa para criarmos sistemas robustos e escaláveis em um ambiente distribuído. Infelizmente, ele era usado de uma maneira bastante equivocada: grande parte do seu foco estava na criação de aplicações distribuídas, e não aplicações mais simpels como ocorre em 90% dos casos.

    Foi quando surgiu um livro fantástico do Rod Johnson chamado "Java EE development without EJB" que nos fez repensar o real uso desta tecnologia e também apresentar o Spring como solução.

    De lá pra cá, muita coisa mudou: veio o EJB3, que é ordens de magnitude mais fácil de trabalhar que a versão anterior, tivemos o JPA e, mais recentemente, vêmos o CDI.

    A pergunta que se faz é: vale à pena usar o Spring? Na minha opinião (que eu sei ser suspeita) vale. E vale muito. Por que isto:

    1) O Java EE é mantido por um comitê: sendo assim, seu desenvolvimento sempre se baseia (ao menos em 99% dos casos) na inclusão na plataforma do menor denominador comum do que é encontrado fora dela. Pegue o CDI por exemplo: ele tem inspiração no Pico Container, Spring e Google Guice. Dos três, pegou apena so básico em comum. Sendo assim, no que ocorre fora do comitê você sempre vai ver tecnologias mais modernas que as escolhidas pelo comitê. Isto pode mudar, é verdade, mas não vejo isto ocorrendo.

    2) O modelo de desenvolvimento. Apesar do CDI estar mais próximo do Spring, o desenvolvimento com Spring ainda é mais leve. Tanto no sentido de custo computacional como das próprias dependências. Apesar de ser visto de modo negativo, o XML nos permite usar qualquer POJO no container do Spring SEM que precisemos alterar uma linha de código. Com anotações precisamos recompilar, lembrem-se disto (ah, e no Spring o XML é opcional viu? Pode trablahar igual no CDI se quiser).

    3) O ecosistema Spring. Há subprojetos excelentes lá dentro, como por exemplo o Spring Data e o Security, que se integram perfeitamente com o Spring Core.

    4) Alguns dos recursos do Spring ainda são superiores: controle transacional mais fino e fácil de implementar, AOP mais evoluída com AspectJ, por exemplo, o suporte a DAO também é bastante interessnate, e mais alguns.



    Seria bacana se o autor do tópico alterasse o título tirando esse VS, o que acham?



    Discordo, acho este tópico excelente justamente por mostrar que esta visão não é válida.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. ricoarrigoni
    Posts:2302


    Comment Arrow

    Publicado em: 28/01/2013 21:52:22

    [quote="kicolobo"][quote="ricoarrigoni"][quote="kicolobo"]"Spring vs Java EE" é uma concepção bastante errada.
    Na realidade, é "Spring *com* Java EE", e sempre foi assim desde o início.

    A história é a seguinte: quando o Spring surgiu, o objetivo por trás do projeto era facilitar o desenvolvimento de aplicações corporativas. O EJB já havia pego tração e se mostrado uma plataforma maravilhosa para criarmos sistemas robustos e escaláveis em um ambiente distribuído. Infelizmente, ele era usado de uma maneira bastante equivocada: grande parte do seu foco estava na criação de aplicações distribuídas, e não aplicações mais simpels como ocorre em 90% dos casos.

    Foi quando surgiu um livro fantástico do Rod Johnson chamado "Java EE development without EJB" que nos fez repensar o real uso desta tecnologia e também apresentar o Spring como solução.

    De lá pra cá, muita coisa mudou: veio o EJB3, que é ordens de magnitude mais fácil de trabalhar que a versão anterior, tivemos o JPA e, mais recentemente, vêmos o CDI.

    A pergunta que se faz é: vale à pena usar o Spring? Na minha opinião (que eu sei ser suspeita) vale. E vale muito. Por que isto:

    1) O Java EE é mantido por um comitê: sendo assim, seu desenvolvimento sempre se baseia (ao menos em 99% dos casos) na inclusão na plataforma do menor denominador comum do que é encontrado fora dela. Pegue o CDI por exemplo: ele tem inspiração no Pico Container, Spring e Google Guice. Dos três, pegou apena so básico em comum. Sendo assim, no que ocorre fora do comitê você sempre vai ver tecnologias mais modernas que as escolhidas pelo comitê. Isto pode mudar, é verdade, mas não vejo isto ocorrendo.

    2) O modelo de desenvolvimento. Apesar do CDI estar mais próximo do Spring, o desenvolvimento com Spring ainda é mais leve. Tanto no sentido de custo computacional como das próprias dependências. Apesar de ser visto de modo negativo, o XML nos permite usar qualquer POJO no container do Spring SEM que precisemos alterar uma linha de código. Com anotações precisamos recompilar, lembrem-se disto (ah, e no Spring o XML é opcional viu? Pode trablahar igual no CDI se quiser).

    3) O ecosistema Spring. Há subprojetos excelentes lá dentro, como por exemplo o Spring Data e o Security, que se integram perfeitamente com o Spring Core.

    4) Alguns dos recursos do Spring ainda são superiores: controle transacional mais fino e fácil de implementar, AOP mais evoluída com AspectJ, por exemplo, o suporte a DAO também é bastante interessnate, e mais alguns.



    Seria bacana se o autor do tópico alterasse o título tirando esse VS, o que acham?



    Discordo, acho este tópico excelente justamente por mostrar que esta visão não é válida.



    Entendi, mas acho que pode confundir um pouco as pessoas achando que eh uma disputa e tals rs que sao coisas diferentes rs
    _________________

    Moderador JavaFree - Ricardo Arrigoni

    Como Inserir Códigos no post
    Como Inserir LINKS no post
    Devo ou não marcar o tópico como resolvido ?
    Encontrou algo de errado acontecendo no JavaFree ? Envie uma MP para a coordenação do fórum aqui
    Manual de condutas para usuários / Manual de condutas para moderadores
    Devmedia



  1. kicolobo
    Posts:87


    Comment Arrow

    Publicado em: 28/01/2013 21:53:32

    [quote="ricoarrigoni"]
    Entendi, mas acho que pode confundir um pouco as pessoas achando que eh uma disputa e tals rs que sao coisas diferentes rs



    Se fosse pra mudar, talvez eu modificasse para "Java EE vs Spring?"
    É uma.
    _________________

    Henrique Lobo Weissmann
    kicolobo@itexto.net
    http://mundokico.itexto.net
    http://devkico.itexto.com.br

    Autor do livro "Vire o Jogo com Spring Framework" - http://www.casadocodigo.com.br/products/spring



  1. thiagovpalmeir
    Posts:1456


    Comment Arrow

    Publicado em: 28/01/2013 22:00:27

    [quote="kicolobo"][quote="thiagovpalmeir"][quote="thiagovpalmeir"]Seria possível trabalhar com Spring e Hibernate no mesmo projeto? Na realidade ele é usado frequentemente? Resumindo em que ajuda, no desempenho? Na persistência dos dados? Em que?



    Alguém?



    te respondi logo acima.



    Foi malz, vlw...
    _________________



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 28/01/2013 22:17:47

    [quote="ricoarrigoni"][quote="kicolobo"][quote="ricoarrigoni"]Rapaz, tópico tá bombando ein! DD

    QUanto aos frameworks Java, os únicos que eu tive algum contato até então foram:

    Hibernate, JSF, Struts MUITO POUCO rs

    Alguém sabe de dizer se é possível ou bom desenvolver app mobile(android) com Spring ?



    Sim, é possível. Da uma olhada neste link: http://www.springsource.org/spring-android

    Existe um projeto da SpringSource chamado Spring for Android que é justamente pra isto.



    Holy shit! o bagui eh muito maior do que eu imaginava rs Muito irado esse spring!



    Além do Spring tem também o RoboGuice:

    http://code.google.com/p/roboguice/

    A dúvida, qual é o melhor?
    - Roboguice
    - Spring-Android
    - Android-Annotations

    Vi que o Android-Annotations é mais performático, pois é resolvido em tempo de compilação (não usa reflexão).
    Bem, já estava na hora das aplicações Android terem injeção de dependência. Nem tanto pela performance, pois você acaba colocando um overhead a mais de abstração, mas pelo design limpo (SOLID).


    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 29/01/2013 04:27:29

    Tem o Google Guice que promete ser mais rápido que o Spring, no entanto, ele é bem mais limitado.
    _________________

    site: www.otaviojava.com.br



  1. davi.costa
    Posts:2520


    Comment Arrow

    Publicado em: 29/01/2013 06:14:43

    melhor tópico de 2013 disparado.... várias explicações sobre JEE, Spring... e seus n projetos!!!

    abcs
    _________________

    att Davi Costa
    Analista/Arquiteto Java
    Especialista em Engenharia de Sistemas
    ScrumMaster Certified



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 29/01/2013 06:41:55

    [quote="davi.costa"]melhor tópico de 2013 disparado.... várias explicações sobre JEE, Spring... e seus n projetos!!!

    abcs



    _________________

    site: www.otaviojava.com.br

  1. Comment Arrow

    Publicado em: 29/01/2013 08:53:26

    Ótimo tópico, como disse na thread que iniciamos esta discussão, é o tipo do assunto que rende bastante conhecimento para os já experientes e para os recém chegados então, nem se fala.

    Vamos em frente.

    Nunca pensei em utilizar o Spring junto com o JEE, sempre pensei no Spring no lugar do JEE.

    Alguém poderia dar algum exemplo da combinação de ambos ?
    _________________

    "Retém a instrução e não a largues. guarda-a, porque ela é a tua vida." (Pr 4:13)



  1. otavio_java
    Posts:849


    Comment Arrow

    Publicado em: 29/01/2013 09:14:51

    [quote="Leonardo Torres"]Ótimo tópico, como disse na thread que iniciamos esta discussão, é o tipo do assunto que rende bastante conhecimento para os já experientes e para os recém chegados então, nem se fala.

    Vamos em frente.

    Nunca pensei em utilizar o Spring junto com o JEE, sempre pensei no Spring no lugar do JEE.

    Alguém poderia dar algum exemplo da combinação de ambos ?


    Vc tem razão, não é interessante usar toda a parte do Java EE com o Spring.
    Mas uma parte de cada seria interessante.

    Um projeto legal seria usar o Spring Core com o JSF.

    Outro produto que tinhamos rodava em Java EE, no entanto, tinha clientes que gostava do Glassfish e outros do Jboss.
    Como o JAAS de cada um é bem diferente, estamos nos movendo para colocar o Spring Security.
    _________________

    site: www.otaviojava.com.br



  1. Relacionados