• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

CDI – Conceitos sobre Interceptors

November 12, 2018 by Mauda Leave a Comment

Conteúdo do Post:
  1. Contextualizando…
  2. Interceptors
  3. finnaly{

Olá pessoal, tudo bom?

O artigo de hoje irá abordar os conceitos sobre Interceptors, um item muito importante na especificação CDI. Veja na continuação desse artigo.

Contextualizando…

Um código de software possui uma característica peculiar, pois uma mesma atividade pode ser repetida inúmeras vezes de formas diferentes por vários desenvolvedores que não se comunicam. Isso acontece ou porque não possuímos conhecimento para fazer de uma forma diferente, ou por que estamos tão ocupados corrigindo bugs e incidentes em produção que acabamos não verificando se determinada atividade já está presente dentro do código.

A Figura 01 mostra uma chamada ao método findById() da classe MusicaDAO a partir de uma classe Façade, antiga Business Controler.

Figura 01 – Chamada ao método findById() da classe MusicaDAO

Não temos a implementação do método aqui, mas vamos supor que no método findById foi colocado um cronometro, para verificar quanto tempo leva a execução do método em questão.

Só que esse cronometro está repetido em vários métodos de outras classes que também verificam o tempo de execução. Existe uma forma de melhorar isso?

Interceptors

O CDI possui um mecanismo de interrupção de código de execução de um método chamado Interceptor.

Ao realizar a chamada do método que foi anotado, o CDI transpõe essa chamada, executando o método que o interceptor implementou e se for o caso permite a chamada do método original o qual é executado normalmente.

Esse mecanismo é formado por uma annotation própria e uma classe com um método apropriado para executar isso. Observe a Figura 02.

Figura 02 – CDI interceptando a chamada ao método findById

 

No limiar da chamada do método findById(), o CDI entra em ação e intercepta a chamada, representada pelo retângulo amarelo antes da seta do método. Nesse momento o CDI chama a annotation @Cronometro e o método manage(), que realiza o start do cronometro e chama o método original, findById(). Ao final da execução do método o CDI obtém esse retorno e finaliza o cronometro, para enfim retornar a chamada ao método da classe MusicaFacade.

Com isso é possível utilizar a annotation @Cronometro em qualquer método que precise monitorar o tempo de execução e com isso esse código de medição de tempo ficará em um único lugar.

finnaly{

Em um post futuro vamos descrever como criar o interceptor @Cronometro.

Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!

Até um próximo post!

Filed Under: Java Tagged With: cdi, cronometro, interceptor

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in