在Filter bean类中使用一些bean?
在我的filter bean类中,我添加了一些bean依赖关系(带有@Autowired
注释)。但是在该方法中doFilter()
,我所有的依赖项bean都为null。
public class FacebookOAuth implements Filter{
@Autowired
private BusinessLogger logger;
@Autowired
private IUserSessionInfo userSessionInfo;
@Autowired
private FacebookOAuthHelper oAuthHelper;
public void init(FilterConfig fc) throws ServletException
{
// Nothing to do
}
public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws IOException, ServletException
{
// HttpServletRequest req = (HttpServletRequest)sr;
HttpServletResponse res = (HttpServletResponse) sr1;
String code = sr.getParameter("code");
if (StringUtil.isNotBlankStr(code))
{
String authURL = this.oAuthHelper.getAuthURL(code);
this.oAuthHelper等于null(和其他依赖项bean)…
你可以帮帮我吗 ?
实际上,我不在服务器端(Spring)上使用MVC概念。对于我的副客户端,我使用Flex技术,并且BlazeDS servlet吨与服务器通信。
因此,这就是原因,我使用了Filter bean的概念。
因此,如何在Filter bean中处理会话bean的概念?
Skaffman,
我实现了你的想法,因此我使用以下命令更新了application.xml:
<bean id="FacebookOAuthHandler" class="com.xx.FacebookOAuthHandler" /><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/fbauth">FacebookOAuthHandler</prop>
</props>
</property>
</bean>
和我的FacebookOAuthHandler类:
public class FacebookOAuthHandler extends AbstractController{
@Autowired
private BusinessLogger logger;
@Autowired
private IUserSessionInfo userSessionInfo;
@Autowired
private FacebookOAuthHelper oAuthHelper;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO
return null;
}
但是,当我的URL为:http://xx.xx.xx.xx/MyApp/fbauth时,永远不会调用此方法handleRequestInternal
回答:
我遇到了同样的问题,我的第一个想法是手动强制Spring将@Autowired注释应用于此处建议的过滤器
但是我不喜欢在Java类中对bean名称进行硬编码的想法。
我发现了一种更有效的方法:
public void init(FilterConfig filterConfig) throws ServletException { SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,
filterConfig.getServletContext());
}
以上是 在Filter bean类中使用一些bean? 的全部内容, 来源链接: utcz.com/qa/404655.html