Spring项目中能否将web.xml里的contextConfigLocation替换为foo?
能否将web.xml中的contextConfigLocation替换为foo?
不能直接将contextConfigLocation替换为foo,原因如下:
- Spring 2.5.6中,
ContextLoaderListener或ContextLoaderServlet是通过识别contextConfigLocation这个特定参数名来加载Spring上下文配置文件的,这是框架的官方约定。 - 若改为
foo,Spring无法识别该参数,会自动回退到默认配置路径/WEB-INF/applicationContext.xml。如果你的配置文件不在这个默认位置,会导致Spring无法加载必要配置,直接引发应用启动失败。 - 虽然可以通过扩展
ContextLoader类、重写initWebApplicationContext方法来读取自定义参数名,但这种操作完全没必要,反而会增加代码复杂度,违背框架的设计约定。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

