代码之家  ›  专栏  ›  技术社区  ›  Michel

具有两个Spring配置上下文XML文件的bean引用

  •  1
  • Michel  · 技术社区  · 14 年前

    当在其他Spring上下文XML文件中引用bean时,我总是能让它正常工作,但这次不行:

    springapp-servlet.xml:

     <!-- Spring Controllers -->
    <b:bean id="loginSpringController" class="com.foo.bar.controllers.spring.LoginController"/>
    <b:alias name="loginSpringController" alias="loginSprController"/>   
    

    应用程序上下文.xml

    <!-- Custom AuthenticationProcessingFilter with Callbacks -->
    <authentication-manager alias="authenticationManagerAlias"/>
    <b:bean id="authenticationProcessingFilter" name="authenticationProcessingFilter" class="com.foo.bar.support.event.CustomAuthenticationProcessingFilter"> 
    <b:property name="authenticationManager" ref="authenticationManagerAlias"/>
    <b:property name="authenticationFailureUrl" value="/login.do?1=1"/>
    <b:property name="filterProcessesUrl" value="/j_spring_security_check"/>
    <b:property name="callback" ref="successfulAuthenticationCallbackImpl"/>
    <b:property name="defaultTargetUrl" value="/index.html"/>
    <!-- Reference to the sprint controller -->
    <b:property name="loginSpringController"><b:ref bean="loginSprController"/></b:property>
    <custom-filter position="AUTHENTICATION_PROCESSING_FILTER" />          
    

    但是我仍然得到这个错误(即使没有别名):

    org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'loginSprController' is defined
    
    2 回复  |  直到 14 年前
        1
  •  3
  •   skaffman    14 年前

    豆子在 application-context.xml (由webapp“拥有”)看不到bean springapp-servlet.xml (由servlet“拥有”)。不过,servlets bean可以看到webappbean。

    你需要重新排列你的bean以便没有来自 应用程序上下文.xml springapp-servlet.xml文件

        2
  •  0
  •   Jatin    14 年前

    您所称的“application context.xml”应该重命名为“springapp security.xml”。然后更明显的是,为什么应该将SpringControllerbean移到“springapp servlet.xml”。