2012-02-01 13 views
21

Tengo dos preguntas con respecto a classpath: opción en primavera: -utilizando la ruta de clase: en primavera

1) ¿Tiene classpath: búsqueda de recursos en relación con el documento en el que se especifica (en el caso de aplicaciones web)?

Supongamos que utilizo el siguiente:

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

en myconfig.xml bajo /WEB-INF/classes/config/myconfig.xml. Entonces, ¿desde dónde comenzará su búsqueda?

2) ¿Es más rápido para buscar si doy ubicación directa del recurso en lugar de dar classpath: es decir

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

en lugar de

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

Gracias ...

Respuesta

13

¿Busca classpath: un recurso relativo al documento en el que está especificado (en caso de aplicación web)? ns)?

No, classpath: es siempre relativo a la raíz de la ruta de clase. Si coloca un / al comienzo de la ruta, se eliminará en silencio.

Es más rápido buscar si doy la ubicación directa del recurso en lugar de, por ejemplo, classpath:/WEB-INF/classes/myfolder/myfile.txt

No, eso no funcionará en absoluto. La raíz del classpath contiene /WEB-INF/classes, por lo que la ruta debe ser relativa a eso.

No confunda las rutas classpath: con rutas de archivos, no tienen ninguna relación entre ellas.

3

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

Este prefijo especial especifica que todos los recursos ruta de clases que el partido tiene que obtuvo el nombre dado (internamente, esto ocurre fundamentalmente a través de una llamada ClassLoader.getResources (...)), y luego se fusionaron para formar la definición final del contexto de la aplicación.

Así classpath: comienza en la raíz de su ruta de clase.

Cuestiones relacionadas