在Spring中使用通配符通过注释将文件作为资源列表注入

时间:2014-07-14 14:05:11

标签: java spring dependency-injection spring-annotations spring-io

我有一个用作春豆的课程。 bean在applicationContext.xml中定义为:

<bean id="myClass" class="com.example.MyClass">
        <property name="cssFiles" value="classpath*:../../cssDir/*.css"/>
</bean>

MyClass看起来像:

...
import org.springframework.core.io.Resource;
...
public class MyClass {
    private List<Resource> cssFiles;

    // methods etc.
}

所以Spring使用&#34; classpath *:../../ cssDir /&#34; 下的所有扩展名为.css的文件填充cssFiles字段。

现在我正在努力转向完整的注释配置,但我无法用注释做同样的事情。这不起作用:

...
import org.springframework.core.io.Resource;
...
@Component
public class MyClass {
    @Value("classpath*:../../cssDir/*.css")
    private List<Resource> cssFiles;

    // methods etc.
}

你有什么想法吗?

2 个答案:

答案 0 :(得分:15)

如果您愿意使用数组而不是List

,请尝试以下操作
@Value("classpath*:../../cssDir/*.css")
private Resource[] cssFiles;

答案 1 :(得分:1)

对于application.properties(yml)方法:

someFiles=file:/some/path/*.someExtension