Spring Framework 5.0.7 e 4.3.18

Nessa semana tivemos uma nova versão de manutenção do Spring Framework 5.0.7 e 4.3.18 estão disponíveis agora.  O Spring Framework 5.0.7 inclui 39 correções e melhorias selecionadas, enquanto o Spring Framework 4.3.18 inclui 15 correções e melhorias selecionadas:

“Portanto, ponham em primeiro lugar na sua vida o Reino de Deus e aquilo que Deus quer, e ele lhes dará todas essas coisas.” Mateus 6:33

Anúncios

Spring Framework 4.3.17 e 5.0.6 disponível

Disponível novas versões do Spring Framework 4.3.17 inclui 15 correções e uma coleção de melhorias e a versão 5.0.6 contém mais de 40 correções e melhorias. Atualize seu POM, rodem o TDD e bola pra frente!

“Pois Deus está sempre agindo em vocês para que obedeçam à vontade dele, tanto no pensamento como nas ações.” Filipenses 2:13

Estudando Spring Framework

Para quem deseja aprender usar o Spring Framework, nada melhor que ler a documentação oficial da pivotal, que é completo, muito bem explicado e com vários exemplos.

  • Veja nesse link o caminho para os docs de todas a versões.
  • Veja nesse link o caminho para os docs da versão 4.x.
  • Veja nesse link o caminho para os docs da versão 5.x.

Na escolhida, vc pode optar pela documentação multiplos html, single html ou em versão PDF. Bons estudos 😉 !

“A pessoa que procura segurança no Deus Altíssimo e se abriga na sombra protetora do Todo-Poderoso”. Salmos 91:1

Novo Spring Framework 5.0.5 e 4.3.1

Nova versão do Spring Framework 5.0.5 e 4.3.15 estão disponíveis agora, como outro par de lançamentos de refinamento, recomendados como atualizações imediatas para todos os usuários. A versão 5.0.5 é a base para o próximo lançamento do Spring Boot 2.0.1 no final desta semana, e o 4.3.15 será escolhido pelo Boot 1.5.11 no mesmo período. Ambas as versões do framework vêm com muitas correções de bugs, mas também com uma ampla seleção de refinamentos.

“Ele foi rejeitado e desprezado por todos; ele suportou dores e sofrimentos sem fim. Era como alguém que não queremos ver; nós nem mesmo olhávamos para ele e o desprezávamos.” Isaías 53:3

Solução de mensageira não é um bicho de 7 cabeças # 1

activemq-5-x-box-reflectionVocê já ouviu falar de MOM?

Message oriented middleware (MOM) é servidor de aplicação (infra-estrutura de software + hardware) idealizado exclusivamente para suportar o envio e recebimento de mensagens entre sistemas distribuídos. É um serviço utilizado para intermediar a troca de mensagens entre sistemas, com o objetivo de fazer integração de serviços.

Para que serve um MOM?

Serve para dar solução robusta e confiável na integração entre duas ou mais diferentes soluções. Integrar sistemas hoje é um desafio imenso, diferentes plataformas, diferentes tecnologias, diferentes protocolos, diferentes mecanismos de persistências, assim, se faz necessario garantir serviços dentro da solução de integração como por exemplo: desacoplamento, entrega de mensagem, persistência de mensagem, politicas de retry, processamento assíncrono, escalabilidade, confiabilidade, transação, interrupções, segurança, clusterização e muito etc. Um MOM já faz tudo isso e muito mais.

MOM é para ser utilizado em soluções de grande porte?

Essa é justamente meu ponto: você lendo tal definição, tem a falsa impressão que só usaria um MOM para fazer coisas gigantescas e exorbitantes!!! Mas depois de conhecer Apache ActiveMQ e Spring JMS, você vera que é muito fácil e pode usar para fazer coisas pequenas também. Como diria um amigo meu, “só na manteguinha….. 🙂 “.

Você já ouviu falar de ActiveMQ?

ActiveMQ é uma implementação de um middleware completo (MOM), open source e grátis. Ele possui todas as grandes features necessários para dar solução em coisas de “grande porte”, mas o que o pessoal desconhece é que ele tem um arquitetura tão flexível e é tão bem feito que oferece diversas opções de uso e configurações flexíveis. Umas delas é usar o serviço de MOM de forma “embarcada”, dentro da sua própria instancia da JVM e da solução, não precisando criar um servidor remoto exclusivo para isso. Juntamente com isso, você desabilita as chamadas remotas e questões de persistência, e assim, acaba ficando com um mini-serviço de MOM simples, local com suporte a filas(Queue) e tópicos (Topics) que é justamente a “cereja de bolo” desse tipo de serviço.

Você já ouviu falar de Spring JMS?

Spring JMS é kit de desenvolvimento arquitetural que faz parte do framework spring criado exclusivamente para se trabalhar com integração de sistemas usando MOM. Esse produto abstrai toda a infra-estrutura de código utilizada para programar esse tipo de solução, criando uma facade de serviços rápida, produtiva e fácil de usar, retirando a necessidade de fazer código sujo e infraestrutural (boilepart) necessário para se configurar, enviar e consumir mensagens de um MOM.

Vamos fazer um exemplo prático?

Segue abaixo um exemplo real dessa simples e robusta solução:

Ferramentas:

  • Maven
  • Eclipse Java EE IDE for Web Developers – Versão Neon.1
  • Groovy-Eclipse plugin

Projeto:

Segue os passos resumido do projeto:

Crie um projeto java maven: New project -> Maven Project. Adicione groovy no projeto: botão direto no projeto -> configure -> Convert to groovy project. Configure o pom para baixar as dependências básicas: groovy, spring, cdi e activemq:

1

Configurar o spring.xml, subindo o activemq local, sem persistência, sem jmx, sem chamada remota. Configurar uma fila simples e um listener de fila. Configuramos também um jmsTemplate que é a facade de serviços spring que esconde a código sujo de MOM e JMS.

2

Criar um bean que envia a mensagem da fila:

2

Criar um bean que consome as mensagens da fila:

3

Fazer uma classe simples com main para testar o envio e o consumo da mensagem:

3

Execute a solução e teremos a saída:

3

E assim, com  menos de 5 minutos, e poucas linhas de código você consegue embarcar e reusar um MOM completo fazendo filas, tópicos, sem persistência, sem chamada remota, sem gastar muita memoria, rápido, fácil e sem perder tempo fazendo na unha qualquer coisa do tipo. Sem contar que você pode evoluir mais esse produto, habilitando serviço por serviço, tudo de acordo com sua necessidade.

Aonde eu uso isso?

Precisou integrar sua solução java com e-mail?, web services soap? web services rest?, banco de dados legados? ou quer gerar um relatório pesado assíncrono? Esta ai seu ponto de partido. ActiveMQ + Spring JMS = Solução simples e rápida com todos os sabores de processamento assíncrono usando filas e tópicos 100% MOM.

Como eu aprendo mais sobre esse assunto?

Tudo isso e muito mais pode ser encontrado no livro ActiveMQ in Action. Excelente livro sobre conceitos de mensageria, JMS e integrações em geral.

Github

Se te interessar, baixe esse projeto no meu git. Até a próxima 😉 !

“Mas tu, ó SENHOR, me proteges como um escudo. Tu me dás a vitória e renovas a minha coragem.” Salmos 3:3

Métodos Privados Transacionais com Spring

Como a maioria de vocês provavelmente já sabe, devido à própria natureza da solução, a anotação @Transactional do Spring não funciona em métodos privados, devido ao fato que, o controle transacional é gerado via proxy dinâmico que decora a chamada publica da interface. Mas muitas das vezes, eu já precisei fatorar um método privado transacional para reuso de código. E ai vem a pergunta: É possível fazer? Com Java 8 na sua caixa de ferramenta sim, no qual você pode criar um método funcional recebendo um Supplier que faz uma operação publica, totalmente dinâmica que faça o encapsulamento do controle transacional. veja um exemplo:

Como pode ser observado, a versão do Java 8 e suas features funcionais são base da nova revolução que esta acontecendo dentro da linguagem Java. E você, já sabe programar funcional no Java 8? Veja nosso curso de Java SE F5 – Desenvolvedor Funcional Java 8 e entre nessa nova onda!

“As pessoas que pertencem a Cristo Jesus crucificaram a natureza humana delas, junto com todas as paixões e desejos dessa natureza.” Gálatas 5:24

Rumo a Spring Professional Certification

Essa semana comecei minha jornada rumo a certificação de spring chamada Spring Professional Certification. A certificação custa $200  é feita em qualquer centro Person VUE e desde ano passo não requer mais curso obrigado, assim chegou a hora de colocar em prova meus 10 anos de spring. Essa certificação consiste em 50 perguntas, devendo ter acertos de 38 para ser aprovado, 76%. Segue abaixo minha organização para os estudos:

1)Spring in Action

Primeiro passo é estudar o livro mais básico de spring e aprender core dos serviços. Nesse livro temos todas essas informações.

2)Pivotal Certified Professional Spring Developer Exam

Segundo passo é estudar o livro oficial para a certificação. Nesse livro teremos destaques para os tópicos que cairão na prova, dicas e pegadinhas de sempre.

3)Curso Java Spring Framework 4 and Spring Certification

Próximo passo é fazer o curso da mesma certificação feito um por um brother que já foi aprovado nessa prova. Já comprei o curso e vou fazer, mas não sei como vai ser. Espero ver dicas focadas na prova.

4)Estudar Resumo

Próximo passo é dar uma estudada no resumo sobre essa prova feito pelo Vojtech Ruzicka, com objetivo de memorizar oque for necessário para a prova.

5)Emulador PDF

O site http://javaetmoi.com oferece um mock em pdf completinho muito bom para iniciar a simulação da prova.

6)Emulador Web

Ultimo passo é comprar um emulador da prova oficial e ser aprovado nesse simulado. Essa empresa vende um simulado Spring Core 4.3 Web Simulator. Essa é parte mais divertida e gostosa do processo kkk, já estou ansioso 😀 !

Animado galera? Quem vem estudar comigo? Estou disponível no whatsapp (43)984074007. Vamos que vamos…

“O ladrão só vem para roubar, matar e destruir; mas eu vim para que as ovelhas tenham vida, a vida completa.” João 10:10