6

Ho una classe che utilizzo come bean di primavera. Il fagiolo è definito nel applicationContext.xml come:Iniettare i file come elenco di risorse utilizzando caratteri jolly in base alle annotazioni in primavera

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

E MyClass assomiglia:

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

    // methods etc. 
} 

Così primavera popola il campo cssFiles con tutti i file con estensione css sotto "classpath *: .. /../cssDir/ ".

Ora sto lavorando per passare alla configurazione di annotazione completa, ma non sono riuscito a fare la stessa cosa con le annotazioni. Questo NON funziona:

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

    // methods etc. 
} 

Avete qualche idea?

+0

funziona in questo modo: '@Value (" classpath *: ../../ cssDir/*. Css ") Risorsa privata [] cssFiles;'? –

+0

Grazie amico, ha funzionato, sei un eroe! Puoi scrivere questo come risposta in modo che io possa contrassegnarlo come risposta accettata? –

risposta

12

Provate quanto segue, se siete disposti ad utilizzare un array invece di un List:

@Value("classpath*:../../cssDir/*.css") 
private Resource[] cssFiles; 
+1

c'è un modo per costruire questo array di risorse nella configurazione xml? – hans

0

Per application.properties (yml) approccio:

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