applicationContext.xml 存放到工程下resources文件 而不是放在src 或webroot的话要怎么配置 web.xml文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了applicationContext.xml 存放到工程下resources文件 而不是放在src 或webroot的话要怎么配置 web.xml文件相关的知识,希望对你有一定的参考价值。

<param-value>
resources/applicationContext.xml
</param-value> 这么配的为什么不对呢?

同样可以用classpath:xxx.xml

只要保证一点,项目打包时 将resources目录打包到web-inf/classes目录下

1、可以通过ant 实现

2、eclipse 如下:

可以通过ADD 按钮 增加你的resources文件夹 然后在deploy path里面指定WEB-INF/classes

参考技术A <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-service.xml</param-value>
</context-param>
用classpath , 不需要resource路径

applicationContext.xml (系统找不到指定的文件)

Caused by: java.io.FileNotFoundException: applicationContext.xml (系统找不到指定的文件)

 

方法一:

ApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml");

//applicationContext.xml在src目录下

 

 

方法二:

ApplicationContext context = new FileSystemXmlApplicationContext("src/applicationContext.xml ");

 

//applicationContext.xml在src目录下

 

然后DriveCar dc=(DriveCar)ctx.getBean("DriveCar");就可以使用了……
注意上面两种加载是的路径。
然后在把他们转换成BeanFactory就可以了。需要用到那个bean就用getBean(“”)取得,可以根据id或name都可以。
除此之外还有两种加载的方法:

 

方法三:

ClassPathResource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource); 
方法四:
Resource resource = new FileSystemResource("Src/applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
同样要注意上面的路径的不同。其实classpath相对应的路径就是src目录下,而fileSystem相对的是工程目录。所以它们路径是有区别的,加载时也要细心,不然就会报java.io.FileNotFoundException(系统找不到指定的文件)的异常了。

以上是关于applicationContext.xml 存放到工程下resources文件 而不是放在src 或webroot的话要怎么配置 web.xml文件的主要内容,如果未能解决你的问题,请参考以下文章

基于注解的bean配置

applicationContext.xml (系统找不到指定的文件)

ApplicationContext详解以及多个ApplicationContext.xml的相互引用

使用带有 Maven 结构的 @ContextConfiguration("/applicationContext.xml") “加载 ApplicationContext 失败”

在 Spring ApplicationContext 中设置 PropertyPlaceholderConfigurer 相对于 applicationContext.xml 的位置

在web.xml正确加载spring配置文件的方式