Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
This is version 5.
It is not the current version, and thus it cannot be edited. Part II: Criando novos Managers (gerentes) - Um HowTo para criação de Business Delegates que conversa com as camadas banco de dados (DAOs) e web (Struts Actions or Spring Controllers).
Sobre este TutorialEste tutorial mostrará como criar uma classe que delega regras de negócio (e um teste JUnit) para conversar com o DAO que criamos na Parte I.No contexto do AppFuse, isto é chamado de classe Manager(Gerente). Sua responsabilidade principal é agir como uma ponte entre a camada de persistência(DAO) e a camada web. O padrão Business Delegate da Sun dita que estes objetos são úteis para desacoplar a camada de apresentação da camada de dados (i.e. para aplicações Swing). Gerentes(Managers) devem ser colocados onde lógicas de negócio são necessárias.
Vamos começar criando novas classes ManagerTest e Manager na arquitetura AppFuse. Tabela de Conteúdo
Criar um novo ManagerTest para rodar testes JUnit no Manager [#1]Na Parte I, criamos o objeto Person e o PersonDao - então vamos continuar a desenvolver esta entidade. Primeiramente, vamos criar o teste JUnit para o PersonManager. Crie a classe PersonManagerTest no diretório test/service/**/service. Queremos testar os mesmos métodos básicos (get, save, remove) que o nosso DAO tem.
Esta classe deve estender BaseManagerTestCase, que já existe no pacote service. A classe pai (BaseManagerTestCase) serve para o mesmo propósito da classe BaseDaoTestCase - carregar um arquivo .properties que possui o mesmo nome de sua classe *Test, assim como inicializar o ApplicationContext do Spring.
O código abaixo é o que precisamos para um teste JUnit básico para nossos Managers. Diferente do DaoTest, este teste utiliza jMock para isolar o Manager de suas dependências e fazer um teste unitário verdadeiro.
Agora que temos o framework JUnit configurado para esta classe, vamos ao que interessa: os métodos de teste para nos certificar que tudo funciona no nosso Manager. Aqui está um exemplo do Tutorial DAO para ajudá-lo a entender o que estamos fazendo.
Adicione os métodos seguintes ao seu arquivo PersonManagerTest.java:
Esta classe não compilará neste ponto porque nós não criamos nossa interface PersonManager.
Criar um novo Manager para conversar com o DAO [#2]Primeiramente, crie uma interface PersonManager.java no diretório src/service/**/service, e especifique os métodos CRUD básicos para implementações posteriores. Eliminei os JavaDocs na classe abaixo para não poluir o código.
Agora vamos criar uma classe PersonManagerImpl que implementa os métodos da interface PersonManager. Para fazer isto, crie uma nova classe em src/service/**/service com o nome PersonManagerImpl.java. Esta classe deve estender BaseManager e implementar PersonManager.
Uma coisa que deve ser notada é o método setPersonDao. Este método é utilizado pelo Spring para ligar o PersonDao a este Gerente(Manager). Isto é configurado no arquivo applicationContext-service.xml. Veremos como se configura este arquivo no Passo 3[3]. Já nos é possível compilar tudo agora utilizando "ant compile-service"... Agora necessitamos editar o arquivo de configuração do Spring para nossa camada Service para lhe dizer da existência do novo Manager. Configurar o Spring para este Manager e as Transações [#3]Para notificar o Spring da nossa interface PersonManager e sua implementação, abra o arquivo src/service/**/service/applicationContext-service.xml. Nele, veremos uma configuração comentada para o bean "PersonManager". Retire o comentário, ou adicione o seguinte código ao final do arquivo.
O atributo "parent" se refere a uma definição de bean para um TransactionProxyFactoryBean, que possui todos os atributos de transação básicos inicializados. Rodar o ManagerTest [#4]Salve todos os seus arquivos editados e tente rodar "ant test-service -Dtestcase=PersonManager" mais uma vez. Yeah Baby, Yeah:
BUILD SUCCESSFUL Os arquivos modificados e adicionados nesta parte podem ser baixados aqui. Próxima: Parte III: Criando Actions e JSPs - Um tutorial para criação de Actions e JSPs na arquitetura AppFuse.
|