At line 178 changed 2 lines. |
<div class="note" style="font-size: 12px"> |
<a name="appgen"></a>__A Ferramenta AppGen__ |
%%note <a name="appgen"></a>__NOTE:__ AppFuse versions 1.6.1+ contain include an [AppGen] tool that can be used to generate all the classes for the rest of these tutorials. However, it's best that you go through these tutorials before using this tool - then you'll know what code it's generating.%% |
At line 181 removed 17 lines. |
Como parte da 1.6.1, eu criei uma ferramenta __AppGen__ que pode ser usada para gerar todas as classes para o restante destes tutoriais. Esta ferramenta foi baseada em contribuições de [Lance Lavandowska|https://appfuse.dev.java.net/issues/show_bug.cgi?id=60] e [Ben Gill|https://appfuse.dev.java.net/issues/show_bug.cgi?id=78]. No início, eu não quis adicionar uma característica de geração de código como essa porque você terminaria com um 1-para-1 relacionamento entre tabelas/pojos, DAOs e Managers. Em muito de meu projetos, eu tenho de longe menos DAOs e Managers do que POJOs. |
|
Por padrão, AppGen irá gerar somente Actions/Controllers, Action/Controller Tests, test data, i18n keys e JSPs. Irá também configurar Actions/Controllers para você. Ele usa as classes genéricas BaseManager e BaseDaoHibernate (configurada como "manager" e "dao") reduzindo o número de arquivos que são gerados. Porém, eu percebi que algumas vezes você irá querer gerar todas as classes DAO e Manager (e também seus tests), assim eu adicionei esta opção também. |
|
Para usar a ferramenta AppGen (depois de instalar sua framework web), execute os seguintes passos: |
|
# Crie seu POJO (no diretório model) e <a href="#ref-CreateDAO-5">configure o arquivo de mapeamento</a> in applicationContext-hibernate.xml. |
# cd dentro do ''extras/appgen'' diretório e execute "ant -Dobject.name=Person -Dappgen.type=pojo". Neste exemplo, uma classe __Person__ deve existir em seu pacote "model". Isto gera todos os arquivos que você criou no tutoriais neste site (para sua framework web de escolha). |
# Para instalar os arquivos gerados, execute "ant install". Você pode executar "ant install -Dmodel.name=Person -Dmodel.name.lowercase=person" se você desejar fazer tudo de uma única vez. __ATENÇÃO:__ Você deveria fazer backup de seu projeto antes de executar esta opção - ou pelo menos ter certeza que ele foi gravado no seu repositório de código fonte. Eu testei este código, e penso que funciona bem - mas ele ''está'' modificando a árvore de código-fonte para você. |
|
A razão para o "lowercase" parâmetro é renomear as JSPs para começar com uma letra minúscula. Se eu tentasse renomá-los e alterado o nome do arquivo programaticamente, levaria à 1MB a importância da BSF e Rhino JARs (+5 linhas de código) e desta forma me pareceu mais fácil. Falando de JSPs - depende de você modificar o *Form.jsp e fazê-lo paracer melhor. Isto é abrangido no passo 5 de cada respectiva framework web "Create Action/Controller" tutorial: <a href="http://raibledesigns.com/wiki/Wiki.jsp?page=CreateActions#ref-CreateAction-5">Struts</a>, <a href="http://raibledesigns.com/wiki/Wiki.jsp?page=SpringControllers#ref-SpringControllers-5">Spring</a> and <a href="http://raibledesigns.com/wiki/Wiki.jsp?page=WebWorkActions#ref-WebWorkActions-5">WebWork</a>. |
|
__NOTA:__ Se você quizer gerar tudo DAOs/Managers/Tests, execute "ant install-detailed" no lugar de "ant install". Antes de você instalar tudo, os arquivos serão criados no extras/appgen/build/gen diretório (caso você queira dar uma olhada antes de instalar). Se você somente quizer testar a ferramenta, você pode cd para este diretório e executar "ant test" para vê o conteúdo destes tutoriais criados. |
|
Eu o encorago a ler estes tutorias mesmo se você decidir gerar todo seu código. Desta forma você irá entender o que está sendo gerado para você e somente precisará das lista de usuários para [perguntando questões inteligentes|http://www.catb.org/~esr/faqs/smart-questions.html]. ;-) Espero que esta ferramenta irá remover o sofrimento de escrever simples código CRUD e deixar você concentrar no desenvolvimento de suas regras/lógica de negócio e UIs especiais!</div> |
|
|