Verwenden Sie einige Beans in der Filter Bean-Klasse?

In meiner Filter Bean-Klasse habe ich einige Beans-Abhängigkeiten hinzugefügt (mit@Autowired Anmerkung). Aber in der MethodedoFilter(), alle meine Dependency Beans haben 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 ist gleich null (und andere abhängige Beans) ...

Kannst du mir helfen

In der Tat verwende ich nicht MVC Begriff auf der Serverseite (Frühling). Für meinen Nebenclient verwende ich die Flex-Technologie und das BlazeDS-Servlet, um mit meinem Server zu kommunizieren.

So, das ist der Grund, warum ich den Filter Bean-Begriff verwende.

So, wie kann ich meine Session-Bean-Idee in meiner Filter-Bean behandeln?

Skaffman,

Ich habe Ihre Idee umgesetzt, daher aktualisiere ich meine application.xml mit:

<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>

und mein FacebookOAuthHandler class:

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;
}

Aber diese Methode handleRequestInternal wird nie aufgerufen, wenn meine URL lautet:http: //xx.xx.xx.xx/MyApp/fbaut

Antworten auf die Frage(10)

Ihre Antwort auf die Frage