我已经像这样定义了一个ClassPathResource bean:
<bean id="ivsInputResource" class="org.springframework.core.io.ClassPathResource">
<qualifier value="ivs" />
<constructor-arg index="0"
value="classpath*:IVS90test.csv"/>
</bean>
但是当注入资源bean时,我的应用程序会因此异常而中断:
Caused by: java.lang.IllegalStateException: Input resource must exist (reader is in 'strict' mode): class path resource [classpath*:IVS90test.csv]
at org.springframework.batch.item.file.FlatFileItemReader.doOpen(FlatFileItemReader.java:256)
at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:134)
显然无法找到资源。当使用FileSystemResource(带有调整路径)时,我的应用程序可以正常工作。
如何从类路径正确加载文件?
我的项目如图所示:
答案 0 :(得分:1)
classpath:
<强>参数强>:
path - 类路径中的绝对路径
此处,绝对路径表示来自资源文件夹的根目录,因此您需要做的就是将其更改为
<bean id="ivsInputResource" class="org.springframework.core.io.ClassPathResource">
<qualifier value="ivs" />
<constructor-arg index="0"
value="IVS90test.csv"/>
</bean>