Alexandre Afonso

É graduado em Sistemas de Informação, trabalha como instrutor na AlgaWorks e está no mercado de programação Java há mais de 8 anos, principalmente no desenvolvimento de sistemas corporativos.

Entenda a variável serialVersionUID e sua importância na arquitetura Java

Postado por em   ●   49 comentários

Apesar de tão presente no dia a dia dos desenvolvedores Java, muitos ainda tem dúvidas sobre o atributo serialVersionUID:

  • Quando usar?
  • De onde o Eclipse tira o valor dessa propriedade?
  • Por que é um número tão grande? Não poderia ser 1?
  • Se alterar, vai dar problemas?
  • Ele pode ser removido?

Nesse artigo vou responder a essas dúvidas e, por tabela, algumas outras também.

Continue lendo

O que é Spring Boot?

Postado por em   ●   14 comentários

Muitas pessoas morrem de medo de terem que configurar uma aplicação do zero. Geralmente, são necessárias várias configurações para só então começar a codificar.

Agora, imagine pular toda essa parte chata de configurações e criar um projeto onde você já tenha tudo o que precisa para começar uma aplicação. Muito bom, não é mesmo?

Se você gostou dessa ideia, continue comigo que eu vou te mostrar como criar esse tipo de aplicação utilizando o Spring Boot.

Olha só o que você irá aprender nesse artigo:

  • O que é Spring Boot
  • Instalando o STS (Spring Tool Suite)
  • Desenvolver uma pequena aplicação web para listagem de contatos
  • Que benefícios tem o DevTools
  • Como publicar sua aplicação no Heroku

“Vambora”!?

Continue lendo

O que é Spring Data JPA?

Postado por em   ●   10 comentários

Gostaria de conhecer um framework que vai mudar (pra melhor) a forma como você implementa a camada de persistência de seus projetos Java?

Não importa se você trabalha com o conceito de DAO ou Repositório, a questão é que você pode ser muito mais produtivo na hora de programar sua camada de persistência se utilizar o Spring Data JPA.

Se você usa JPA, acredito que vai gostar bastante dele. Então continue aqui comigo para aprender mais sobre:

  • O que é o Spring Data JPA
  • Como usar o JPARepository e ser muito produtivo
  • Criar consultas sem escrevê-las, só pela assinatura do método (curioso isso, não acha?)
  • Utilizar JPQL através da anotação @Query

Continue lendo

Como utilizar o Thymeleaf em seus templates com Spring MVC

Postado por em   ●   6 comentários

Thymeleaf é um motor de templates que tem levantado uma questão interessante nos últimos tempos: Por que usar Thymeleaf? JSP não é bom?

Sim, o JSP é bom, mas vale muito a pena dar uma chance para o Thymeleaf, que é uma engine de templates com algumas vantagens importantes para nossos projetos e vem ganhando muita popularidade.

Esse é um motor diferente de outros que temos por aí e, inclusive, alguém que talvez goste dele é o seu programador front-end. Você já vai entender isso. :)

Fique comigo nessa videoaula gratuita para aprender sobre:

  • 3 vantagens do Thymeleaf
  • Como configurar ele dentro do Spring MVC
  • A exata diferença de um mesmo protótipo dinamizado com JSP e com Thymeleaf

Vamos lá?

Continue lendo

O que é Spring Security?

Postado por em   ●   30 comentários

O Spring Security tem recursos avançados e de simples configuração para lhe ajudar com a segurança da sua aplicação.

Falando nisso, e a sua aplicação web? Está segura!? Hoje vamos conversar sobre como você pode aplicar segurança profissional nela.

Veremos algumas coisas bem legais agora. Fique comigo nos próximos minutos que você irá aprender sobre:

  • O que é Spring Security
  • Como configurar o Spring Security
  • Configurar autenticação em memória
  • Como fazer autenticação via JDBC
  • Como fazer autenticação via JPA utilizando a interface UserDetailsService
  • Criar uma página de login customizada
  • A função “lembrar-me”
  • Criar a funcionalidade de logout
  • Como adicionar permissões (autorização) em nossas páginas

Continue lendo

O que é Spring MVC?

Postado por em   ●   4 comentários

Gostaria de facilidade e flexibilidade para trabalhar com requisições web? O Spring MVC é a ferramenta que dá isso para você!

Hoje é difícil conceber uma aplicação sem a parte web, concorda? Além das numerosas aplicações web, a maioria dos aplicativos móveis (para Android e iOS, por exemplo) precisam de uma APIs RESTful para consumir.

Por isso, conhecer um framework que ajuda nesse trabalho é vantajoso para qualquer programador.

Essa é a ideia de agora: explicar como o Spring MVC funciona. Continue lendo para aprender sobre:

  • O que é Spring MVC?
  • Criação de controladores web
  • Novas anotações de mapeamento
  • Recebendo dados de um formulário
  • Enviando dados para a página
  • Como configurar o ViewResolver
  • Como usar o Spring MVC para criar uma API RESTful

“Vambora”!?

Continue lendo

Injeção de dependências com Spring

Postado por em   ●   12 comentários

Gostaria de conhecer mais sobre injeção de dependências do ponto de vista do Spring Framework?

Esse é um conceito que ainda causa muita confusão na cabeça dos desenvolvedores. Quero aqui clarear esse assunto e trazer mais tranquilidade para quem está começando.

Continue lendo para aprender mais sobre:

  • O que é injeção de dependências (Dependency Injection – DI)?
  • Quais os pontos de injeção do Spring?
  • Para o Spring, o que torna uma classe elegível a ser injetada e o que são métodos produtores?
  • O que são os Qualificadores e como qualificar um bean Spring?
  • Quais os escopos possíveis de um bean?
  • Como utilizar a JSR 330?

Continue lendo

Deploy de aplicações JSF na DigitalOcean

Postado por em   ●   8 comentários

Sabia que você não precisa mais que alguns segundos para configurar seu Droplet na DigitalOcean?

Obviamente é necessário conhecer as opções de configuração. Mas é justamente isso que faço nessa aula. Eu apresento e explico elas pra você.

É uma aula com muita informação sobre como fazer deploy de um projeto JSF e, dentre outras coisas, você vai aprender sobre:

  • Como configurar um Droplet (ou VPS)
  • Como criar um usuário no seu Droplet e configurar a autenticação sem a senha
  • Instalação e configuração do MySQL
  • Instalação do Java e do Tomcat
  • Como automatizar a publicação do seu projeto com um script simples

Continue lendo

Hospedagem JSF no Heroku

Postado por em   ●   24 comentários

Ao desenvolver uma aplicação JSF, nossas maiores preocupações são sobre as tecnologias e as regras de negócio necessárias para isso. Óbvio, não é mesmo?

Mas quero destacar aqui o momento depois que a aplicação é concluída (ou quase) e precisa ir para um ambiente de produção.

Nessa hora começa outra corrida: uma pesquisa pelo melhor lugar para publicar o projeto. Depois que encontra, mais uma: descobrir como essa hospedagem funciona.

Gravei uma aula que vai mostrar para você como funciona uma excelente opção para publicar seu projeto: o Heroku.

Vou mostrar como utilizar a hospedagem grátis do Heroku e mais:

  • O que são os Dynos e seus tipos
  • Como utilizar a cota gratuita
  • Quais são os tipos de processos que o Heroku disponibiliza
  • Como configurar sua aplicação JSF para hospedá-la no Heroku
  • O que é um Procfile
  • E utilizar o Heroku CLI para rodar os comandos necessários para publicar e configurar sua aplicação

Continue lendo

Domine o componente FileUpload do PrimeFaces

Postado por em   ●   13 comentários

Você que usa PrimeFaces, gostaria de dominar o componente de upload de arquivos?

Saber que existe um componente para upload de arquivos na biblioteca do PrimeFaces não diminui muito a quantidade de problemas que podemos ter ao utilizá-lo.

Uma simples configuração errada pode fazer você perder 1 hora enquanto poderia ter gasto apenas 10 minutos, se soubesse um pouco mais de detalhes sobre o componente.

Considerando que o carregamento de arquivos é uma funcionalidade bastante utilizada, acredito (e acho que você vai concordar comigo) que o legal mesmo é conhecer o funcionamento do p:fileUpload.

Caso você queira ser proativo e tomar conhecimento sobre esse componente útil em nosso dia a dia, então continue lendo o artigo para aprender mais sobre:

  • Como fazer um upload compatível com browsers mais antigos ou não-ajax
  • Fazer upload utilizando o modo avançado
  • Carregar mais de um arquivo por vez
  • Fazer upload automático
  • Limitar o tamanho e a quantidade de arquivos carregados
  • Filtrar os tipos dos arquivos que poderão ser escolhidos
  • Escolher arquivos utilizando drag and drop
  • Como fazer o download dos arquivos

Continue lendo