2012-02-01 20 views
21

Ho due domande riguardanti classpath: opzione in primavera: -utilizzando classpath: in primavera

1) Se classpath: ricerca di risorse rispetto al documento in cui viene specificato (in caso di applicazioni web)?

Supponiamo che io uso il seguente:

<bean class="mybean"> 
<property name="myresource" value="classpath:myfile.txt"/> 
</bean> 

in myconfig.xml sotto /WEB-INF/classes/config/myconfig.xml. Quindi da dove inizierà la sua ricerca?

2) E 'più veloce per cercare se io do posizione diretta della risorsa invece di dare classpath: cioè

<bean class="mybean"> 
<property name="myresource" value="classpath:/WEB-INF/classes/myfolder/myfile.txt"/> 
</bean> 

invece di

<bean class="mybean"> 
<property name="myresource" value="classpath:myfile.txt"/> 
</bean> 

Grazie ...

risposta

13

classpath: cerca la risorsa relativa al documento in cui è specificata (in caso di applicazione web ns)?

No, classpath: è sempre relativo alla radice del classpath. Se inserisci un valore / all'inizio del percorso, viene rimosso automaticamente.

È più veloce cercare se fornisco la posizione diretta della risorsa invece, ad es. classpath:/WEB-INF/classes/myfolder/myfile.txt

No, non funzionerà affatto. La radice del classpath contiene /WEB-INF/classes, quindi il percorso deve essere relativo a tale.

Non confondere i percorsi classpath: con percorsi di file, non hanno alcuna relazione l'uno con l'altro.

3

Date un'occhiata a http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/resources.html#resources-classpath-wildcards

Questo prefisso speciale specifica che tutte le risorse classpath che corrispondono al nome dato deve essere ottenuto (internamente, questo avviene essenzialmente tramite una chiamata ClassLoader.getResources (...)), e quindi uniti per formare la definizione del contesto dell'applicazione finale.

Quindi classpath: inizia nella radice del classpath.

Problemi correlati