2010-09-06 63 views
1

我创建了一个Controller bean来映射专用的URI。我的Controller bean(Spring-MVC)中没有处理Autowired bean

的web.xml文件:

<!-- Spring MVC Servlet (that will route HTTP requests to BlazeDS) --> 
<servlet> 
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-main-config.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<!-- We are only using BlazeDS AMF channels to communicate with FlexClient, so let's map URLs accordingly. --> 
<servlet-mapping> 
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
    <url-pattern>/messagebroker/*</url-pattern>   
</servlet-mapping> 

     <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-filter-config.xml</param-value> 
     </context-param> 

     <listener> 
       <listener-class> 
       org.springframework.web.context.ContextLoaderListener 
       </listener-class> 
     </listener> 

弹簧主config.xml的文件:

<!-- Import configuration base --> 
<import resource="spring-base-config.xml"/> 

<!-- Flex integration within Spring. --> 
<flex:message-broker services-config-path="/WEB-INF/flex-services-config.xml"> 
    <flex:remoting-service /> 
</flex:message-broker> 

<!-- Session-scoped bean for User Info --> 
<bean class="com.sharehunter.businessservices.common.UserSessionInfo" scope="session"> 
    <aop:scoped-proxy proxy-target-class="false"/> 
</bean>  

弹簧过滤器的config.xml文件:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
    <value> 
    /fbauth=myController 
    </value> 
    </property> 
</bean> 

<bean id="myController" 
    class="myapp.controller.myController" /> 

我的豆控制器文件:

package myapp.controller; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.AbstractController; 

    public class MyController extends AbstractController{ 

    @Autowired 
    UserSesson userSession; 

    @Autowired 
    BusinessLogger logger; 

@Override 
protected ModelAndView handleRequestInternal(HttpServletRequest request, 
    HttpServletResponse response) throws Exception { 

    // TO DO - Facebook authentication 
    return null; 
} 
} 

我的问题:我所有的自动装配Autowired豆在我的控制器豆已经是在零相等。我不明白我的配置中的问题在哪里...

非常感谢您的帮助!

安东尼

回答

2

你有两个不同的定义contextx(spring-filter-config.xmlspring-main-config.xml),但你应该只有一个。 <context:annotation-driven/>仅在spring-main-config.xml中定义,而不在spring-filter-config.xml中定义,因此在spring-filter-config.xml中定义的任何bean都不会自动布线。

您的控制器在spring-filter-config.xml中定义,但控制器应该与ServiceDispatcherServlet关联。您需要将spring-filter-config.xml的内容移动到spring-main-config.xml,然后删除ContextLoaderListener - 您似乎没有任何正确的用法。

+0

嗨Skaffman,其实<背景:注解配置/>出现在我的弹簧底座-config.xml(从spring-main-config.xml导入)。那么,我的spring-filter-config.xml中的注释也应该是这样的? – Anthony 2010-09-06 12:06:13

+0

@Anthony:见编辑 – skaffman 2010-09-06 12:20:49

0

你的bean映射在哪里?

提到在XML文件中有那么@Autowired则默认情况下该bean类是被称为识别...