I have defined a javax.servlet.Filter and I have Java class with Spring annotations.
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
@Configuration
public class SocialConfig {
// ...
@Bean
public UsersConnectionRepository usersConnectionRepository() {
// ...
}
}
I want to get the bean UsersConnectionRepository in my Filter, so I tried the following:
public void init(FilterConfig filterConfig) throws ServletException {
UsersConnectionRepository bean = (UsersConnectionRepository) filterConfig.getServletContext().getAttribute("#{connectionFactoryLocator}");
}
But it always returns null. How can I get a Spring bean in a Filter?
Try:
Where
usersConnectionRepositoryis a name/id of your bean in the application context. Or even better:Also have a look at GenericFilterBean and its subclasses.