首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载资源文件,如(sql、txt等),并具有到Spring ApplicationContext类路径的绝对路径

加载资源文件,如(sql、txt等),并具有到Spring ApplicationContext类路径的绝对路径
EN

Stack Overflow用户
提问于 2020-01-14 15:49:44
回答 1查看 133关注 0票数 1

通常在一个基于maven的spring应用程序中,如果我需要使用任何文件资源,我通常会将它放在一个文件夹src/main/resources中,然后它将神奇地用于spring app config文件,如下所示,其中有一个文件引用,如"classpath:create-table.sql“。

spring_config.xml

代码语言:javascript
复制
<jdbc:embedded-database id="dataSource" type="DERBY">
    <jdbc:script location="classpath:create-table.sql" />
</jdbc:embedded-database>

如果应用程序上下文是从web.xml用WebApplicationContext加载的,那么在这种情况下,应用程序上下文甚至不需要下面的初始化样式,但是如果我要编写一个独立的基于java的spring应用程序,它需要下面的应用程序上下文初始化,而不是基于maven或web的应用程序,那么如何使它的类路径中的任何资源文件可用来引用这样的文件(create-table.sql),如在配置文件中所示?

代码语言:javascript
复制
ApplicationContext context = new ClassPathXmlApplicationContext("/spring_config.xml");

我知道如何使用如下所示的绝对路径加载,但我需要的是能够在类路径中为spring配置文件提供资源文件,以便从类路径本身引用。

代码语言:javascript
复制
<jdbc:embedded-database id="dataSource" type="DERBY">
    <jdbc:script location="file:C:\junit_framework\springmodulecontext\create-table.sql" />
</jdbc:embedded-database>

如果有一种使用相对路径引用文件的方法,这样我就可以将资源文件放在配置文件的旁边,并使用当前目录符号(如" file :./create-table.sql“)来引用它,这会更好吗?我试过这种绝对表示法,但似乎行不通。

EN

回答 1

Stack Overflow用户

发布于 2020-01-14 16:03:01

如果我要编写一个独立的基于java的spring应用程序,而不是基于maven或web的,我可以通过将它的目录路径(绝对路径或相对路径)包含到java -classpath列表中,从而使类路径中的任何资源文件可用。

也就是说,如果我希望像" classpath :create-table.sql“这样的文件引用实际读取./create-table.sql,我需要将一个. (它是所需文件的目录路径)放到类路径中,如下所示:

java -classpath .:lib/*..jar:.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59737326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档