Artigo Java Magazine 77 - AOP com Struts 2

Apresentação da arquitetura de interceptors do Struts 2, que possibilita a programação orientada a aspectos. Os interceptors têm o objetivo de capturar as requisições feitas às actions antes que elas cheguem ao seu destino. Veremos como eles funcionam, como eles são configurados e o que fazer para customizá-los.

De que se trata o artigo:

Apresentação da arquitetura de interceptors do Struts 2, que possibilita a programação orientada a aspectos. Os interceptors têm o objetivo de capturar as requisições feitas às actions antes que elas cheguem ao seu destino. Veremos como eles funcionam, como eles são configurados e o que fazer para customizá-los.

Para que serve:

Este artigo serve para desenvolvedores que têm interesse em conhecer como funcionam os interceptors do Struts 2 e em como desenvolver o seu próprio código para interceptar chamadas às actions. Os interceptors são a forma de programar orientado a aspectos usando o framework.

Em que situação o tema é útil:

As pessoas que desejam programar orientado a aspectos no Struts 2 e não conhecem a arquitetura dos interceptors encontrarão neste artigo uma abordagem simples e prática para entender, configurar e criar seu próprio código para interceptar requisições.

AOP com Struts 2:

O Struts 2 é um framework web que nasceu da fusão dos projetos Struts e WebWork. Dentre suas novas funcionalidades estão o suporte a interceptors, que são códigos executados depois que uma requisição é feita e antes que ela chegue à action à qual se destina. Os interceptors dão ao framework o suporte à programação orientada a aspectos (AOP), de forma que as actions não possuam qualquer referência a eles.

O Struts 2 é um framework MVC baseado em ações (action-based framework), nascido da união dos projetos Struts e WebWork. Mesmo tendo herdado o nome Struts, a maior parte das suas funcionalidades foram herdadas do WebWork, o que torna o Struts e o Struts 2 frameworks bastante diferentes.

Já a AOP permite “plugar” funcionalidades no código, também conhecidas como aspectos. A grande vantagem é que o código não possui conhecimento a respeito dos aspectos, o que permite habilitá-los e desabilitá-los sem que seja necessária qualquer alteração no código que é beneficiado pela sua presença. No Struts 2, o suporte à AOP é feito através do uso de interceptors.

Neste artigo será abordada a arquitetura de interceptors do Struts 2, de forma que o leitor entenderá seus conceitos e funcionamento, bem como a forma de configurá-los. O leitor também aprenderá a criar seus próprios códigos de interceptação como forma de habilitar o AOP em suas aplicações.

Interceptors

Um interceptor é um objeto que envolve a action, de forma que a requisição passa por ele antes de passar pela action e volta a passar por ele depois que a action é executada, antes que ocorra o redirecionamento para um result. Quem é responsável por fazer a chamada ao interceptor é o Struts 2.

A Figura 1 mostra onde o interceptor está posicionado quando uma requisição acontece.

Figura 1. Esquema mostrando a interceptação da chamada a uma action por um interceptor.

Na verdade, não existe a restrição de que apenas um interceptor pode capturar a invocação de uma action. Podem existir vários fazendo este papel, os quais executam em cadeia numa ordem definida. Cada interceptor é responsável por executar a sua tarefa e solicitar para o Struts 2 a invocação do próximo na sequência. Este fluxo ocorre até que não existam mais interceptors, e neste momento a action é invocada. A Figura 2 mostra como funciona o fluxo da requisição quando na presença de diversos interceptors. É importante perceber que a sequência de invocação passa pelos Interceptors 1, 2 e depois 3. Isto é, existe uma ordem bem definida e que sempre é seguida." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados