Code Bye

web.xml配置中,Classpath:com/…/spring-context.xml怎样取得其文件流

 

在使用Spring框架等各种框架的时候,我们经常需要配置一些web初始化参数init-param, 例如Spring的上下文环境配置文件
classpath:com/config/spring-context.xml, 实际文件spring-context.xml是放在com.config包的下面, 那么我们需要在ServletContextListener中取到这个spring-context.xml的文件流。我现在只是在启动的时候使用servletContext.getInitParam(“”);取到了初始化参数classpath:com/config/spring-context.xml, 然后怎样根据这个参数取得文件流呢??请各位大侠不吝赐教。。。

你还是说下你大概要完成一个什么功能吧,web项目完全不需要去通过文件流来读取配置文件。
new DefaultResourceLoader(/*这里可能要指定classLoader*/).getResource(location);

可以读到Resource对象。然后按照你需要,转成相关的URL, inputstream,File等

引用 1 楼 jchuang2011 的回复:

你还是说下你大概要完成一个什么功能吧,web项目完全不需要去通过文件流来读取配置文件。

我想自己做一个DB连接池,然后在web.xml文件中配置了,希望在启动的时候初始化连接池。

引用 2 楼 shine333 的回复:
new DefaultResourceLoader(/*这里可能要指定classLoader*/).getResource(location);

可以读到Resource对象。然后按照你需要,转成相关的URL, inputstream,File等

这个方法我试了一下是可以实现,可是用的是Spring框架里面的东西,还有其他方式吗??


40分
引用 4 楼 shaozengwei 的回复:
Quote: 引用 2 楼 shine333 的回复:
new DefaultResourceLoader(/*这里可能要指定classLoader*/).getResource(location);

可以读到Resource对象。然后按照你需要,转成相关的URL, inputstream,File等

这个方法我试了一下是可以实现,可是用的是Spring框架里面的东西,还有其他方式吗??

你不是已经说了是Spring吗

一般通用的配置,就不一定会写成classpath:xxxxxxx的形式了

如果确定一定是classpath:开头,那么去掉开头的classpath:,也就是用com/config/spring-context.xml

String path = “com/config/spring-context.xml”;
ClassLoader ctxClsLdr = Thread.currentThread().getContextClassLoader();
InputStream input = ctxClsLdr.getResourceAsStream(path); // getResource获得url


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明web.xml配置中,Classpath:com/…/spring-context.xml怎样取得其文件流