【发布时间】:2011-05-03 06:59:20
【问题描述】:
我有一个托管在 Tomcat 中的 3 层应用程序; Web、服务和 DAO 层。
如何集成 Tomcat 和 Spring?我需要利用Spring的依赖注入、事务管理等。
我只能考虑实例化 ClassPathXmlApplicationContext 但这样 ApplicationContext 单例实例在各层之间是不可见的。
【问题讨论】:
我有一个托管在 Tomcat 中的 3 层应用程序; Web、服务和 DAO 层。
如何集成 Tomcat 和 Spring?我需要利用Spring的依赖注入、事务管理等。
我只能考虑实例化 ClassPathXmlApplicationContext 但这样 ApplicationContext 单例实例在各层之间是不可见的。
【问题讨论】:
如果您正在创建 Web 应用程序,则不要使用 ClassPathXmlApplicationContext。取而代之的是您使用网络容器的功能。
您在web.xml 中定义应用程序上下文。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
有关详细信息,请查看文档Convenient ApplicationContext instantiation for web applications。
如果 bean 需要应用程序上下文的实例,请使用 ApplicationContextAware 接口。
【讨论】: