1

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

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

在每个控制器中..有没有人知道更好的方法来做到这一点?

4

1 回答 1

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;
  ...
}
于 2012-04-19T13:44:25.433 回答