在Spring3 Web App中访问beanFactory的更好方法

时间:2012-04-19 13:38:26

标签: java spring spring-mvc

我正在尝试在Spring3 Web App中找到更好的方法来访问beanFactory。现在我设置了一个config.xml文件,其中包含我的系统将要使用的所有服务,在控制器中我提供了一行代码,如:

private static XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml"));

在每个控制器中..有谁知道有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

如果您正在使用Spring MVC,可能您已经在web.xml中定义了一个servlet来处理请求,例如:

  <servlet>
    <description></description>
    <display-name>dispatcher</display-name>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

在这种情况下,你的web-inf目录中应该有一个名为dispatcher-servlet.xml的Spring配置文件。将bean定义放在那里,它们将被定义并在servlet启动时可用。

编辑:

从Spring引用的第3.2.2.1节导入一个bean配置文件到另一个:

<beans>

    <import resource="services.xml"/>
    <import resource="resources/messageSource.xml"/>
    <import resource="/resources/themeSource.xml"/>

    <bean id="bean1" class="..."/>
    <bean id="bean2" class="..."/>

</beans>

在控制器中自动装配bean示例:

@Controller
public class MyController {
  @Autowired
  private MyBeanClass myBeanName;
  ...
}