Postagens

Mostrando postagens de 2016

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ção do componente $http;Linha 11: Declaração na função cham…

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

Hoje iremos analisar o processo de autenticação em uma aplicação que utiliza SpringBoot, SpringSecurity e AngularJS.

Conhecendo o Spring Security
Em toda aplicação o processo de autenticação é extremamente importante, sendo um dos requisitos não funcionais mais importantes em 80% das aplicações.
Para executar tal tarefa , podemos criar rotinas ou usar frameworks já preparados para os mais diferentes cenários, no caso, vamos analisar o Spring Security, este faz parte dos componentes da plataforma Spring.
Um ponto bem interessante do Spring Security, é que ele pode ser usando em projetos que usam ou não o Spring em sua essência, por exemplo, um projeto feito somente com JEE, pode usar o Spring Security para gerenciar a parte de segurança normalmente, para mais detalhes podemos acessar a documentação oficial:
http://docs.spring.io/spring-security/site/docs/4.1.3.RELEASE/reference/htmlsingle/
Integrando o SpringSecurity com SpringBoot
Para utilizar o SpringSecurity em uma aplicação SpringB…

Utilizando a pg_stat_activity para analisar estatísticas do PostgreSQL

Imagem
Recentemente precisei analisar e dimensionar as conexões estabelecidas e os processos que estavam sendo executados em cada uma das conexões no PostgreSQL, o banco de dados possui uma série de estruturas que permitem recuperar tais informações estatísticas.

Análise das Conexões Estabelecidas
Um cenário comum quando precisamos analisar a performance dos nossos sistemas, é o levantamento das conexões estabelecidas com o banco de dados, tal informação é útil para:

 Analisarmos se o pool esta corretamente a dimensionado;Analisar quantas conexões estão sendo utilizadas;Analisar se existem muitas conexões alocadas e ociosas com a base de dados. Em muitas aplicações podemos encontrar problemas relacionados a integração entre o aplicativo e o banco de dados.
Coleta de Estatísticas no PostgreSQL
O  PostgreSQL possui uma série de views que nos fornecem dados estatísticos e gerenciais sobre as base de dados, para mais detalhes podemos consultar o site oficial, onde temos todos os dados que podemos …

Resolvendo problemas entre QueryDSL e SpringBoot 1.4.x

Imagem
Hoje iremos analisar e resolver um problema relacionado a migração para a ultima versão estável do SpringBoot e a integração com a API QueryDSL.

O que é a QueryDSL
A QueryDSL é uma API que permite a escrita de instruções JPQL/SQL de forma fluente, facilitando a escrita de querys complexas e deixando essa operação similar a chamadas de métodos do modelo de domínio, para detalhes segue o site oficial:
http://www.querydsl.com/ https://github.com/querydsl/querydsl
Evolução entre QueryDSL 3.x.x e 4.x.x
Na evolução da QueryDSL, houveram algumas mudanças significativas em , dependência, estrutura e código fonte, vamos analisar alguns deles:
QueryDSL 3.x.x:

Nesse exemplo notamos que a interface Predicate esta localizada no packagecom.mysema.query.types.Predicate.

QueryDSL 4.x.x: 


Nesse exemplo notamos que a interface Predicate esta localizada no packagecom.querydsl.core.types.Predicate.

Além das mudanças acima, existem outros pontos mudaram:
Forma de uso dos métodos e funcionalidades da API;Es…

Configurando o arquivo application.properties do SpringBoot

Ao trabalhar com SpringBoot, nos deparamos com várias configurações que devem ser realizadas, com isso, é necessário conhecer o arquivo onde adicionamos as configurações para o projeto.

Tipos de Arquivos
O SpringBoot permite utilizar 2 diferentes tipos de arquivos de configurações: application.properties (Properties);application.yml (Yml). Por padrão e geralmente o mais utilizado é o application.properties, mas é uma opção que o framework nos fornece, as configurações adicionadas em ambos os arquivos são as mesmas. Exemplo de Configuração
O arquivo de configuração deve conter as configurações essenciais para o uso do SpringBoot, em seu projeto, vamos ver alguns exemplos: spring.application.name: Nome da aplicação;server.port: Porta qual o container embedded irá alocar;server.compression.enabled: Habilita a compressão da resposta http;logging.level.*: Habilita o Logging já configurado. Existem uma grande quantidade de informações que podem ser adicionadas ao arquivo de configuração, o us…

Criando um Projeto com Spring Boot

Imagem
Hoje iremos analisar alguns projetos da plataforma Spring e entender como podemos iniciar um novo projeto utilizando Spring Boot.

A plataforma Spring sempre foi repleta de recursos que a fazem ser uma ótima alternativa para o desenvolvimento de aplicações Java Enterprise, dentro da plataforma temos vários componentes que ajudam no desenvolvimento, vamos listar os mais famosos:
Spring Core: Este é o núcleo da plataforma, este é a base para os demais projetos, responsável pela parte de injeção de dependência e  IoC;Spring MVC:Este é o framework MVC apontado por pesquisas, como sendo o mais utilizado em todo mundo, ele trabalha no estilo Action Based, e possui recursos muito interessantes para trabalhar com Web em geral;Spring Data: Este projeto ajuda na parte de persistência, facilitando na integração com os mais diferentes resources de persistência, JDBC, JPA, Bancos NoSQL, entre outras integrações;Spring Security: Este é responsável pela parte de segurança das aplicações, podemos contr…

AngularJS - Formatando Datas com o Filter Date

Olá pessoal, continuando a série sobre AngularJS, hoje iremos analisar como podemos formatar datas vindas do back-end.

Formatação de Datas e Internacionalização
É muito comum nos devolvermos sistemas que necessitam trabalhar com diferentes formatos de datas e valores, esta tarefa geralmente trás algumas dificuldades tanto para o lado back-end como o front-end, é necessário tratar a forma de armazenar essas informações, e também a forma de exibi-las.

O processo exibição, tem que tratar algumas variáveis ainda um pouco mais complexas, como por exemplo:
Exibir a data de acordo com o idioma escolhido;Exibir em formatos mais complexos de acordo com lógicas de negócio.
AngularJS e o Filter Date
Com AngularJS formatar as datas a serem exibidas é algo bem simples, pois o framework disponibiliza um filter que ajuda a realizar a formatação de um informação apenas invocando o filter date.

Vamos analisar o exemplo abaixo da utilização do filter date:

1- Código html com o uso do filter date:

<!DOCTYPE…

Criando Módulos e DataSources no Wildfly

Imagem
Hoje iremos ver como criar um Módulos e DataSources no Wildfly Application Server.

O que é um Módulo ?
Módulos no Wildfly são recursos que podem ser utilizados em diversos lugares dentro da instância em execução do Container, eles podem ser reaproveitados em diversos lugares, tais como: artefatos, datasources, entre outros.
Criando um novo Módulo
A criação de módulos no Wildfly é uma tarefa simples, em nosso exemplo, iremos criar um módulo referente ao Driver JDBC do PostgreSQL, para isso deve-se executar os seguintes passos:
1- Acessar o diretório: {WILDFLY_HOME}/modules/system/layers/base:

2- Criar a estrutura org/postgresql/main, e adicionaro driver(.jar) do PostgreSQL dentro do diretório main: 3- Ainda no diretório main, criar o arquivo module.xml com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?><modulexmlns="urn:jboss:module:1.3"name="org.postgresql"><resources><resource-rootpath="postgresql-9.4.1208.jar…

AngularJS - Trabalhando com ngApp

Hoje iremos continuar a serie de tutorias sobre o AngularJS, nesse tópico falaremos sobre as principal diretiva do framework, que é a ngApp.

O Que são Módulos ?

O AngularJS é um framework baseado em módulos, ou seja, com ele conseguimos dividir nossa aplicação em várias partes, com isso ganhamos em alguns pontos, tais como:
Facilidade de Manutenção: Pois conseguimos realizar uma alteração em um módulo especifico, sem a necessidade de alterar o resto da aplicação;Reuso: Conseguimos reaproveitar códigos em varias partes da nossa aplicação, até mesmo podemos reaproveitar em aplicações diferentes, Ex: um módulo de validação onde podemos ter validadores de CPF e CNPJ, que são comuns em sistemas corporativos.
Usando a diretiva ngApp

Como já sabemos para trabalhar com o AngularJS, precisamos criar, utilizar, e estender módulos, e para inicializar uma aplicação, temos que declarar em nossa view a diretiva ngApp, que é a responsável por determinar o escopo da aplicação nas páginas html, vamos aco…