Recursos especiais neste artigo:
Artigo no estilo Solução Completa
Autores:Renan de Melo Oliveira e Julian Geraldes Monteiro
Neste artigo, veremos como utilizar os recursos da plataforma open source Jmine, que integra ferramentas como Hibernate, Spring e Wicket para o desenvolvimento de aplicativos corporativos. Para isto, abordaremos os primeiros passos na plataforma, analisando como instalar e executar o projeto no ambiente de desenvolvimento e como desenvolver nossa primeira funcionalidade.
Em que
situação o tema útil
O desenvolvimento de aplicações
corporativas em Java é muito comum, e é útil iniciar um novo projeto plenamente
configurado com
frameworks como JPA, Spring e Wicket, além de recursos muitas vezes necessários
para ambientes corporativos, como escalonamento de batches e gerenciamento do
estado inicial da base de dados.
As empresas são organizações que estão sempre sofrendo mudanças constantes. Os processos da empresa frequentemente mudam: novas abordagens comerciais, promoções, processos internos de operação, alterações da legislação, etc. Para acompanhar todas essas mudanças, a área de desenvolvimento de software precisa ser veloz em se adaptar à realidade organizacional, o que muitas vezes decorre na criação e manutenção de novos projetos de software.
Devido a tendências dos últimos anos, diversos destes novos projetos culminaram na criação de aplicações Java seguindo uma arquitetura web. Para a criação de novas aplicações Java, muitas vezes a abordagem adotada no mercado é definir e montar uma arquitetura inicial em que o sistema possa evoluir. No entanto, este processo de se estruturar uma arquitetura base para a aplicação pode se tornar bastante trabalhoso. Dentre os diversos esforços relacionados à definição de uma arquitetura inicial está a integração de diversos frameworks utilizados no ambiente Java em diferentes camadas, além da preocupação com requisitos de segurança, escalabilidade, gerenciamento de transações, gerenciamento de menus, testes integrados, entre outros requisitos. Para tratar de alguns destes problemas em aplicações web corporativas que a plataforma Jmine foi planejada.
O Jmine é uma plataforma open source de desenvolvimento Java para projetos web que integra alguns dos frameworks mais utilizados no mercado, como Apache Wicket, Spring e JPA com Hibernate. Além disto, esta plataforma é focada no mercado de aplicações corporativas, disponibilizando uma diversidade de recursos para o desenvolvimento de sistemas neste contexto. Dentre estes recursos podemos enumerar o escalonamento de batches por meio de clusterização, regras de negócio dinâmicas por meio de linguagens de script, mecanismo de testes automatizados, segurança, etc. Ao iniciar um projeto com Jmine, recursos como os previamente citados já se encontram disponíveis para o desenvolvedor de forma integrada, apenas com a execução de um simples comando de criação de projetos.
Com base nisso, neste artigo iremos explicar mais detalhadamente o que é o Jmine e abordar como criar rapidamente uma aplicação inicial, com um módulo de controle de usuários e um usuário para administração do sistema já disponível. Explicaremos ainda como criar páginas para a nossa solução e como integrá-las ao sistema de menus, usufruindo de recursos pré-definidos na plataforma.
A plataforma Jmine
O Jmine emergiu como plataforma open source a partir de necessidades comuns de projetos Java Web corporativos. A partir destas necessidades, várias features foram sendo adicionadas ao Jmine para que ele tivesse a capacidade de prover as funcionalidades que hoje possui.
Além de ser um framework “full stack” (agrupa funcionalidades de todas as camadas – apresentação, negócio e persistência), esta plataforma já disponibiliza um ambiente de execução completo para o desenvolvimento de aplicações. Isto é feito porque uma nova aplicação com o Jmine possui um servidor web e um banco de dados embarcados, reduzindo a necessidade de instalações e a complexidade no preparo dos desenvolvedores.
O Jmine integra o Apache Wicket para a camada web, o Spring framework para a injeção de dependências e o JPA com Hibernate para a camada de persistência, e contém diversas ferramentas úteis para o dia a dia do desenvolvimento de aplicações corporativas em grandes empresas. Um resumo dos módulos e recursos mais relevantes do Jmine pode ser visualizado na Figura 1.
Figura 1. Módulos e recursos do Jmine.
Um dos recursos que o Jmine possui que é voltado para grandes organizações é um gerenciador de carga de dados inicial. Com esta plataforma, é possível definir um estado de banco de dados inicial para que uma aplicação rode normalmente, tanto em relação à estrutura das tabelas, quanto em relação a algum conteúdo exigido para sua execução. Este recurso é útil porque muitas vezes precisamos de um preenchimento básico de algumas tabelas informativas para o funcionamento adequado do nosso sistema, como a lista de cidades, estados e países, ou outras informações específicas do contexto do sistema, como a lista de tipos de lançamentos fiscais, entre outras informações.
Além disso, o Jmine oferece um mecanismo para auditoria de entidades dos nossos sistemas. Esta funcionalidade permite que seja gravado um histórico das inclusões, alterações e exclusões de entidades da nossa aplicação, de forma que a auditoria das operações realizadas no sistema se torna uma tarefa simples. Este recurso também possibilita que seja ativado um mecanismo de autorização, o qual obriga que alterações em determinadas entidades do sistema passem por um processo de autorização antes que sejam efetivadas – muitas vezes necessário em ambientes organizacionais.
Outro recurso disponível no Jmine é um módulo denominado Hydra. O objetivo deste módulo é simplificar a integração e a comunicação de nosso aplicativo com sistemas legados, que são bem presentes em ambientes corporativos, e que muitas vezes possuem restrições para a integração difíceis de lidar. O Hydra simplifica o desenvolvimento destas integrações ao facilitar a exportação e importação dos dados de nosso sistema em diferentes formatos (CSV, posicional, binário, etc.) e suportando diferentes meios de comunicação (diretório, filas, web services, etc.).
Outro problema que encontramos muitas vezes em ambientes corporativos é a necessidade de aumentar o nível de processamento computacional para a execução de algumas tarefas mais exigentes. O Jmine contém um módulo específico para o processamento distribuído de processos batch, que pode auxiliar neste tipo de situação. Este módulo se baseia em um modelo de processamento similar aos algoritmos de map e reduce, muito conhecidos em estratégias de computação distribuída, para permitir a distribuição do processamento de batches, e segue um modelo próximo ao definido na JSR 352 (veja a seção ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.