javasf@googlegroups.com
[Top] [All Lists]

Re: [javasf] Como implementar um GenericController

Subject: Re: [javasf] Como implementar um GenericController
From: Alexandre Silveira
Date: Tue, 26 Apr 2011 08:45:28 -0300
Walter, a ideia é estender essa classe para cada Entidade da aplicação. Ele vai ter um "UsuarioService" que estende de genericService e nessa "usuarioService" ele vai criar os outros métodos necessários e exclusivos. A vantagem é que os métodos presentes em genericService estarão presente na maioria (se não todos) os serviços do sistema. Evita a repetição de código e facilita a manutenção.

A questão é como deixá-lo genérico suficiente para funcionar em todos os frameworks :P Isso eu não sei heheh.

2011/4/26 Walter Mourão <walter.mourao@xxxxxxxxx>
Bom dia Lessandro,
desculpe fugir do assunto mas estive olhando esse GenericService e gostaria de saber qual é a vantagem de se criar uma classe cujos métodos simplesmente chamam os métodos de outra classe, sem fazer tranformações ou modificações nos retornos. Vc tem algum material a respeito ?

Sds,

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br




2011/4/25 Lessandro Notaroberto Pyrâmides <lessandronotaroberto@xxxxxxxxx>

Olá pessoal, boa noite.

Estou em dúvida como implementar um GenericController, capaz de satisfazer as

seguintes condições:

 

- Compatível com Spring e JSF 2.0

Tenho a seguinte estrutura no projeto:   View => Controller => Service => DAO

- No caso do controller, o mesmo deveria ser totalmente flexível às páginas existentes, visto

que as mesmas possuem praticamente as mesmas funcionalidades: CRUD.

O GenericController deveria chamar o respectivo método do service, e se comportar de maneira

genérica, ou seja, se uma página com a listagem dos funcionários tivesse um botão “cadastrar funcionário”,

onde um painel seria exibido contendo os dados do funcionário no corpo do template, este se comportasse

de maneira idêntica ao ser chamado por um “cadastrar usuário”, alterando apenas os campos da view de acordo

com o modelo previamente definido.

Quem souber como realizar essa implementação, favor, poste-a aqui...

 

Abaixo segue o meu GenericService:

 

public abstract class GenericService<T, ID extends Serializable> implements IGenericService<T, ID> {

 

    protected IGenericDAO<T, ID> genericDAO;

 

    public void setGenericDAO(IGenericDAO<T, ID> genericDAO) {

        this.genericDAO = genericDAO;

    }

 

    @SuppressWarnings("unchecked")

    public GenericService() {

      this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];

    }

 

    private Class<T> persistentClass;

 

    public Class<T> getPersistentClass() {

      return this.persistentClass;

    }

 

    @Override

    public void exclui(T entity) {

      try {

          genericDAO.exclui(entity);

      } catch (Exception ex) {

      }

    }

 

    @Override

    public T buscaPeloID(ID id) {

      try {

          return (T) genericDAO.buscaPeloID(id);

      } catch (Exception ex) {

      }

      return null;

    }

 

    @Override

    public List<T> buscaTodos() {

      try {

          return genericDAO.buscaTodos();

      } catch (Exception ex) {

      }

      return null;

    }

 

    @Override

    public T salva(T entity) {

      try {

          genericDAO.salva(entity);

          return entity;

      } catch (Exception ex) {

      }

      return entity;

    }

 

    @Override

    public T atualiza(T entity) {

      try {

          genericDAO.atualiza(entity);

          return entity;

      } catch (Exception ex) {

      }

      return entity;

    }

 

Agradeço desde já pela atenção,

Att,

Lessandro

 

-----------------------------------------------------------------------------------------------------
Lessandro Notaroberto Pyrâmides
Analista de Sistemas Java Web, Desktop, Mobile e .NET

Cursando MBA em Gestão de Projetos em TI – Universidade Federal de Juiz de Fora
MSN: lessandrojf@xxxxxxxxxxx
Emails: lessandronotaroberto@xxxxxxxxxxx / lessandronp@xxxxxxxxx
Tels: +55 (32) 8871-3868 / (32) 3213-6295
Juiz de Fora - MG

-----------------------------------------------------------------------------------------------------

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil



--
_________________________________
Alexandre Silveira Neto
Analista e Desenvolvedor de Sistemas
Voiza - Inteligência em TI

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil
<Prev in Thread] Current Thread [Next in Thread>