Duvida sobre implementação

Bom galera eu atualmente to tentando implementar jsf + spring + ibatis, mas ta meio complicado de sai do chão, ate ja postei aki no guj, mas n obtive sucesso, mas isso n vem ao caso agora…

pelo oq tenho percebido existem poucas pessoas q trabalham com essa estrutura (Jsf+Spring+Ibatis),principalmente com o ibatis, entao eu to procurando alternativas, por exemplo:

JSF + Sean + hibernate

JSF + SPring + Hibernate

JSF + EJB + hibernate

JSF + Sean + jPA

enfim, qual estrutura vcs tem usado ultimamente, e pq ?

Estou utilizando :

JSF+FACELETS+SPRING+RICHFACES+HIBERNATE

Mas isso pode variar muito de acordo com a sua necessidade

^^

hmm

kra me responde uma coisa, hibernate n gera sql, ele faz todas as transações com o banco “sozinho”, dessa maneira vc n acaba perdendo boa parte do controle da applicação?

ele tb n complica a vida na hra de gerar relatorios ?

claro q deve te alguma forma de configurar ele para contornar esses tipos de problema, mas eu n consigo deixa d pergunta, pq n usar o ibatis no lugar do hibernate ? ele n complica sua vida na hra dos relatorios, e vc ganha mto em controle comparando com o hibernate. Ainda n sei pq tem tao poucos usuarios do ibatis, será modinha usa o hibernate ?

outra coisa, inclusive ta na mundojava, que ainda n tive a oportunidade de ler, pq usar spring e n usar ejb ?

ps: eu n to pedindo uma analise detalhada do pq usar e do pq n usar, so os principais argumentos…

xii isso gera muita discução existem milhares de topicos e blogs falando disso …
eu achei esse exemplo de algum blog ha algum tempo e o utilizei para o meu tcc…

  1. Distributed Computing ? If components in your web-container need to access remote components, then EJB provides in-build support for remote method calls. The EJB container manages all RMI-IIOP connections. Spring provides support for proxying remote calls via RMI, JAX-RPC etc.
  2. Transaction Support ? EJB by default uses the JTA manager provided by the EJB container and hence can support XA or distributed transactions. Spring does not have default support for distributed transactions, but it can plug in a JTA Transaction manager. Both EJB and Spring allows for declarative transaction demarcation. EJB uses deployment descriptor and Spring uses AOP.
  3. Persistance ? Entity Beans provide CMP and BMP strategies, but my personal experience with these options has been devastating. Entity Beans are too slow!!!..They just suck…
    Spring integrates with Hibernate, IBatis and also has good JDBC wrapper components (JdbcTemplate).
  4. Security ? EJB provides support for declarative security through the deployment descriptor. But again, this incurs a heavy performance penalty and I have rarely seen projects using EJB-container managed security.

Quanto a sua pergunto sobre o Hibernate eu não acho que você acaba perdendo controle da sua aplicação eu acho que você ganha no que se diz respeito a programação OO …
E na minha opinião o Hibernate é muito flexivel e com anotações muito facil de se utilizar…
nunca usei ibatis… mas quando eu vo desenvolver uma aplicação com relatorio eu utilizo JasperReport que funciona perfeitamente…

hmm

é eu sei q gera mta polemica esses tiposd e pergunta, e eu ja li algumas, de curioso msm :stuck_out_tongue:

nunca implementei nada com o hibernate pra fala a verdade, so conheço oq eu li a respeito, e mta gente reclamava na hra de criar relatorios com dados vindos dele …

mas como eu disse nunca implementei nada, acho que so implementando pra sabe…

e qnt ao JBoss Sean, ja usastes ele ?

Não ja li a respeito mas como não utilizo EJB nunca o utilizei…
E quanto ao seu sistema… você vai desenvolver oque?

n sei kra, tava pensando em fzer um gerenciador de conteudo, pra web sites, ou um gerenciador de arquivos… to pensando ainda

com certeza vai ser feito com jsf disso eu tenho certeza :smiley:

talvez com hibernate tb …

alguma sugestao?

Vou responder algumas das suas perguntas sobre o Hibernate, mais nunca trabalhei com Ibatis.

Não sei porque o hibernate dificulta as coisas na hora de fazer os relatórios. A não ser se nos relatórios for trabalhar com SQL puro, não podendo assim reaproveitar o que está feito… Existem muitas maneiras em passar as informações para um relatório, é possível passar um XML ou até um java.util.List

Acredito que as pessoas utilizem o hibernate pq:

  • A maioria dos desevolvedores conhece, há mão de obra no mercado, fóruns etc etc…
  • Eu acho a documentação do Hibernate excelente. Não só diz como fazer… Mas porque fazer desse ou daquele jeito.
  • Querendo ou não o JPA “nasceu” do hibernate. E JPA é uma especificação da Sun, muitos dizem que não faz diferença mais isso influencia muito a decisão das empresas.

Vou fazer um super resumão em relação ao Spring e EJB.

O Spring surgiu numa época onde não tinhamos EJB 3.0. Por isso ficou tão popular, facilita muito a vida dos programadores, coisa que o EJB 2.1 não fazia, alias só dificultava.

O Spring faz praticamente todas as coisas que o EJB 3 faz (exceto transação distribuída) com objetos POJO através de arquivos de configuração ou Annotations

O suporte a injeção de dependência do Spring é excelente, já o EJB 3 só faz isso para alguns tipos de componente. Ex: PersistentContext - EntityManager

A nova especificação da Sun, conhecida como WebBeans (mudou de nome recentemente) deve igualar as funcionalidades de injeção de dependência do Spring.

É possível integrar o Spring a praticamente qualquer Framework existente e ele ainda possui classes utilitárias para eles.

O Spring não é uma especificação da Sun. O que não o torna um Framework ruim. Mas não há alternativas de implementação.

Vale a pena também dar uma olhada no JBoss Seam que nada mais é do que (EJB 3.0 + RichFaces + JPA + Injeção de Dependência).

A JBoss diz que não, mais o JBoss Seam e o Spring são de certa maneira concorrentes, digo de certa maneira, porque é possível utilizar o Seam e o Spring juntos.

Legal cara então ja que você vai utilizar JSF seria uma boa :

  • Você utilizar facelets ja que o mesmo é de 30% a 50% mais rapido que o jsp
  • Richfaces sem comentarios

hmm entao quer dizer que, n posso reaproveitar codigo nos relatorios q for gerar apartir do hibernate ?
n sei c entendi direito …

[quote]Vou fazer um super resumão em relação ao Spring e EJB.
…[/quote]

vlw kra tiro bastantes duvidas minhas …

outra coisa, botando tudo na balança (reaproveitação de codigo, reutilisação de componentes, facilidade de implementação, custo x beneficio, segurança, produtividade, etc etc etc), oq seria mais vantagioso, jsf + sean + spring + persistencia, jsf + sean + ejb + persistencia ?

[quote]Legal cara então ja que você vai utilizar JSF seria uma boa :

  • Você utilizar facelets ja que o mesmo é de 30% a 50% mais rapido que o jsp
  • Richfaces sem comentarios[/quote]

ah sim, n precisa nem comenta, richfaces é obrigatorio :stuck_out_tongue: … e da pra integra o ext js pra fik melhor ainda :smiley:

[quote]hmm entao quer dizer que, n posso reaproveitar codigo nos relatorios q for gerar apartir do hibernate ?
[/quote]
A ideia do Hibernate é voce mapear sua classe… oque possibilita o desenvolvedor desenvolver
uma aplicação sem utilizar sql mas voce pode utilizar HQL …
Olha um exemplo

@Entity
public class Cidade {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String cidade;
    
    @ManyToOne
    private Estado estado;

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public Estado getEstado() {
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    

}

Voce pode ainda criar o banco apartir do mapeamento:

[code]@Component(“criabanco”)
public class CriaBanco {

@Viewless
public void criar(){
   Configuration conf = new AnnotationConfiguration();
    conf.configure();
    SchemaExport se = new SchemaExport(conf);
    se.create(true, true);
}

}
[/code]

Obs:Ignore o uso do VRaptor…

hmmm

entendi xD

Ha… outra dica lega… é esse blog… http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/
aonde varios desenvolvedores postaram como eles fazem suas DAOS
por algum motivo o blog da caelum esta fora do ar… mas quando voltar vale apena voce dar uma olhada…

show de bola :smiley: