Pular para o conteúdo principal

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

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 SpringSecuri

Utilizando a pg_stat_activity para analisar estatísticas do PostgreSQL

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 tod

Resolvendo problemas entre QueryDSL e SpringBoot 1.4.x

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: Dependência Maven para a QueryDSL 3.x.x. Interface Predicate para a QueryDSL 3.x.x. Nesse exemplo notamos que a interface Predicate esta localizada no  package :  com.mysema.query.types.Predicate. QueryDSL 4.x.x:  Dependência Maven para a QueryDSL 4.x.x.   Interface Predicate para

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

Criando um Projeto com Spring Boot

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 ap

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 f

Criando Módulos e DataSources no Wildfly

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: Diretório base. 2- Criar a estrutura  org/postgresql/main,  e adicionar   o driver(.jar) do PostgreSQL dentro do diretório main: Driver do banco de dados PostgreSQL. 3- Ainda no diretório main , criar o arquivo module.xml  com o seguinte conteúdo: <?xml version="1.0" encoding="UTF-8"?> <module xmlns= "urn:jboss:module

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