【问题标题】:Recommended way to access Spring beans in Apache Tomcat webapp?在 Apache Tomcat webapp 中访问 Spring bean 的推荐方法?
【发布时间】:2011-03-09 11:10:44
【问题描述】:

我正在使用 Hibernate 和 Spring 在 Apache Tomcat 6 上开发一个 Web 应用程序,我正在使用不同的 XML 配置文件来定义我的 Spring bean(如 Hibernate DAO、Quartz 调度程序和其他一些东西)。所有这些文件都是在 Tomcat 启动时通过 web.xml (ContextLoaderListener) 加载的。

现在我不确定获取我的 bean 的推荐方法是什么。

我应该写在为所有应该使用 bean 的类提供 BeanFactory 的类上,还是在每个类中加载 BeanFactory 的更好方法。

BeanFactory bf = (BeanFactory) ContextLoader.getCurrentWebApplicationContext();

【问题讨论】:

    标签: spring web-applications tomcat


    【解决方案1】:

    spring 框架的核心思想之一是最小化类之间的依赖关系。通过在整个项目中使用此概念,您将获得最大的收益。每个后端对象都应该定义为 bean,因此可以使用依赖注入自动化。

    如果您的某些 Bean 需要直接访问 ApplicationContext(例如,请求所有实现某个标记接口的 Bean),您可以实现 ApplicationContextAware 接口,因此仍然不需要工厂。

    【讨论】:

      【解决方案2】:

      改用依赖注入。在每个控制器类中创建 getter 和 setter,并使用您的 *-servlet.xml 通过<property> 标签注入所需的 bean。无需工厂!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 2012-09-14
        • 2018-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多