【发布时间】:2014-07-09 09:00:52
【问题描述】:
我有一个简单的 Spring bean
public class Widget {
public Widget(File rootDir) { ... }
}
在我的应用程序上下文 XML 中,我想创建一个 Widget 的实例:
<bean id="widget" class="com.example.Widget">
<constructor-arg type="java.io.File" value="classpath:/someDir"/>
</bean>
当我从我的 IDE 运行时,它可以工作,字符串被转换为文件并传递给 ctor。
当我用mvn exec:java 运行它时,找不到文件,我得到了各种各样的错误,但是围绕着:
org.springframework.beans.factory.BeanCreationException: 错误 使用在类路径中定义的名称小部件创建 bean 资源 [META-INF/context.xml]:无法解析匹配 构造函数(提示:为简单指定索引/类型/名称参数 避免类型歧义的参数)
那么,如何在 Spring 中将 classpath 文件(实际上是目录)传递给 bean 构造函数? 我需要一个目录,因为我想扫描它/列出其中的所有文件。
【问题讨论】:
-
短版:您不能将
File与罐子内的资源一起使用。 -
@chrylis 哦,真难过。如何打开对类路径上
/someClassPathDir中的all 文件的访问权限(例如,获取Reader)?
标签: java spring maven autowired