3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個贊
這是有效的:
@Value("app.users-location")
String foo; // inject "/feed/*.csv"
這也是有效的(來源):
@Value("classpath*:/feed/*.csv")
Collection<Resource> resources; // inject all resources located in this classpath
但我不知道如何將它們混合在一個注釋中:即解析屬性并將其與前綴一起使用classpath*:。也許這是可能的...
不管怎樣,作為替代方案,我會注入這個屬性app.users-location=/feed/*.csv,然后我會使用@PostConstruct它從中獲取資源:
import org.springframework.core.io.support.*
@Value("${app.users-location}")
private String usersLocation;
private Collection<Resource> csvResources;
@PostConstruct
public void init(){
ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
csvResources =
Arrays.asList(patternResolver.getResources("classpath*:/" + usersLocation));
}

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個贊
解決方案是使用數(shù)組而不是列表:
@Value("${app.users-location}")
Resource[] resources;
@PostConstruct
public void init(){
? ? System.out.println(resources);
}
我檢查了一下,真的有效?。?!
添加回答
舉報