A Revista Java Magazine 156 traz um artigo meu sobre CDI.
CDI é a especificação do Java EE para lidar com contextos (diferentes estados da aplicação e seus objetos relacionados) e injeção de dependências. Essa especificação se integra tão bem e de forma tão natural ao restante da plataforma Java que, muitas vezes, seus recursos são utilizados mesmo quando o desenvolvedor não conhece os detalhes da especificação.
Quando o assunto é CDI, para aqueles que conhecem apenas o básico da especificação, o primeiro assunto que vem à cabeça são os recursos relacionados à injeção de dependências, como: a injeção de dependência em si, por meio da anotação @Inject; a produção de beans, por meio da anotação @Produces; e a definição de escopo dos beans por meio da anotação @SessionScoped. CDI, no entanto, oferece muitos outros recursos que podem melhorar ainda mais a arquitetura da aplicação, tanto em termos de acoplamento, quanto em termos de coesão e granularidade, de forma a evitar que o código se torne complexo e custoso de se manter.
Entre os recursos que muitas vezes passam despercebidos pela maioria dos desenvolvedores estão os interceptors e os decorators.
O artigo aborda de forma abrangente e profunda os recursos de Interceptors e Decorators em CDI.
AMORIM, N. Gabriel. Java EE CDI: Como e quando utilizar Interceptors e Decorators. Revista Java Magazine, número 156, Março de 2017.