quinta-feira, 13 de fevereiro de 2014

Injetando beans no filter com Spring

Ontem passei por um problema que gostaria de compartilhar aqui, precisava de um bean injetado no meu filter para registrar a quantidade de acessos que cada página recebia. Pois bem, achei uma solução simples:

Com seu filter criado, como o abaixo:
  1. Agora com o filter criado, você precisa definir ou através de anotação ou através de xml o bean. No caso criei o meu filter com @Named, mas poderia ter adicionando no meu aplicationContext.xml (seu arquivo de configuração spring) a tag <bean name="acessoFilter" class="br.com.tecsinapse.sin.faces.AcessoFilter"/> 
  2.  Você precisa usar a classe org.springframework.web.filter.DelegatingFilterProxy como filter class na declaração do seu filter, só fique atendo para o filter name ficar igual ao nome da classe do seu filter.
Se o seu filtro implementar um init method e um destroy method que façam alguma coisa,  você precisa especificar init-param targetFilterLifecycle com target true, para forçar o proxy chamar estes métodos.

Nenhum comentário:

Postar um comentário