Pular para o conteúdo principal

Postagens

Criando uma Aplicação com Spring Boot e MongoDB

Olá pessoal hoje iremos ver como criar uma aplicação utilizando Spring Boot e o banco NoSQL MongoDB. Criando o Projeto Para criar um sistema usando o SpringBoot a melhor maneira seria criar o projeto via Maven, este processo pode ser realizado de várias maneiras: SpringInitializr ; SpringIDE ; Adicionar as dependências diretamente no pom.xml .  Segue como ficou o pom.xml do projeto: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelVersion> 4.0.0 </modelVersion> <groupId> br.com.cvinicius </groupId> <a...

Criando objetos com @Builder e @Value do framework Lombok

Hoje iremos ver como utilizar as anotações @Builder e @Value do framework Lombok, visando melhorar a forma de criação de objetos. Utilizando a anotação @Builder O nome vem do Pattern Builder , que é um pattern que visa a criação de objetos, ou seja é um pattern de Criação. Vamos analisar a classe abaixo: 1 2 3 4 5 6 7 @Getter @Builder public class Cliente { private String nome ; private String cnpj ; private String endereco ; } O arquivo compilado irá ter a seguinte estrutura: Resultado da compilação utilizando @Builder. No exemplo acima, notamos que o Lombok criou uma classe interna chamada ClienteBuilder , seguindo os preceitos do pattern , agora podemos criar um objeto Cliente utilizando uma forma fluente, assim deixando o código mais simples e funcional, como abaixo: 1 2 3 4 5 Cliente . builder () . nome ( "Nome do Cliente" ) . cnpj ( "1234567890" ) . endereco ( "São Pau...

Melhorando a qualidade do código com Lombok

Olá pessoal, hoje iremos ver como podemos melhorar a escrita do código Java evitando o famoso "Don't repeat your self",  conhecido também como código boilerplate, isso tudo usando o projeto Lombok . O famoso código boilerplate O código boilerplate é aquele que a linguagem ou tecnologia, nos obriga a fazer para criar classes, métodos, e compor comportamentos aos nossos sistemas, no Java, temos muitos pontos que fazemos código boilerplate , as vezes nem percebemos, pois já estamos acostumados com a estrutura da linguagem. Com a evolução da plataforma Java, vários recursos foram introduzidos, que nos ajudou a reduzir o famoso código boilerplate , tais como: Lambdas, Streams, Optional, Default Methods, etc. Apesar da constante evolução da plataforma, ainda existem pontos que precisamos executar de forma manual, ou com a ajuda das IDEs, vamos avaliar alguns deles: Getters/Setters; Construtores; Equals e HashCode; toString(); Variáveis de log e depuração.  ...

Melhorando a sobrescrita dos métodos equals() e hashCode()

Olá hoje iremos melhorar a forma que realizamos uma tarefa que muitos desenvolvedores não gostam de fazer, ou até mesmo deixam de lado, mas é de extrema importância para o correto funcionamento dos nossos Objetos, que é a sobrescrita dos métodos equals  e hashCode(). Sobrescrita utilizando uma IDE A maioria das IDEs realizam a tarefa de sobrescrever os métodos equals(Object o) e hashCode() , mas o código gerado não é dos melhores, vamos analisar um exemplo da geração automática usando a IDE Eclipse, segue o código: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 public class Cliente { private String cpf ; public Cliente ( String cpf ) { this . cpf = cpf ; } public String getCpf () { return cpf ; } @Override public int hashCode () { final int prime = 31 ; int result = 1 ; result = prime * result + (( cpf == null ) ? 0 : cpf . hashCode ()); retu...

Autenticação com Spring Boot, Spring Security e AngularJS - Parte 2

Concluindo a rotina de autenticação, agora iremos criar a camada de frontend, usando o AngularJS. Criando a Factory O primeiro processo é criar uma camada para acesso ao serviço de autenticação, o mesmo se encontra na url /login , o código abaixo representa uma factory para encapsular o acesso a camada backend: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ( function (){ angular.module( "auth" ).factory( "authAPI" , authAPI); authAPI.$inject = [ "$http" ]; function authAPI($http){ return { authenticate : function (params){ var req = { url : '/login' , method : 'POST' , headers : { 'Content-Type' : 'application/x-www-form-urlencoded' }, data : $.param(params) }; return $http(req); } }; }; })(); Vamos analisar o código: Criamos um factory para encapsular o acesso a camada de backend; Linha 5:  Inje...