我正在阅读一本关于Spring和Spring MVC的书,我正在尝试示例应用程序。问题是它是本书的预发行版本,完整代码尚无法下载。
我希望通过网络应用程序访问我的服务层中的bean。我必须在两个xml文件中声明它们吗? (一个用于服务层,一个用于Web应用程序?)本书中给出了此代码以添加到web.xml文件中,但我不确定这解决了什么:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spitter-security.xml
classpath:service-context.xml
classpath:persistence-context.xml
classpath:dataSource-context.xml
</param-value>
</context-param>
但它没有说明service-context.xml等文件的位置,或者文件夹结构是什么。他们如何通过“classpath:”访问类路径?
我可以将这个xml文件放在一个位置,以便主应用程序和Web应用程序访问吗?或者,当我将bean部署到Tomcat时,是否需要两次声明我的bean?
任何帮助都会受到赞赏,因为我对此非常困惑。感谢
答案 0 :(得分:2)
上面指定的xml文件位于类路径的根目录中。即WEB-INF/classes
。 See here了解更多详情
答案 1 :(得分:2)
根应用程序上下文(由ContextLoaderListener
创建)是Web应用程序上下文的父(由DispatcherServlet
创建),因此在根上下文中声明的所有bean都可访问在webapp上下文中,因此您不需要复制它们的声明。
以classpath:
为前缀的资源位于类路径中,正如Bozho所解释的那样。