【问题标题】:using classpath: in spring使用类路径:在春天
【发布时间】:2012-02-01 08:16:04
【问题描述】:

我有两个关于春季 classpath: 选项的问题:-

1) classpath: 是否搜索与指定它的文档相关的资源(在 Web 应用程序的情况下)?

假设我使用以下内容:

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

/WEB-INF/classes/config/myconfig.xml 下的 myconfig.xml 中。那么它会从哪里开始搜索呢?

2)如果我提供资源的直接位置而不是提供classpath: 即,搜索会更快吗

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

而不是

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

谢谢...

【问题讨论】:

    标签: spring classpath


    【解决方案1】:

    classpath: 是否搜索与指定它的文档相关的资源(在 Web 应用程序的情况下)?

    不,classpath: 始终相对于类路径根。如果您在路径的开头放置 /,它会被静默删除。

    如果我直接给出资源的位置,搜索会更快吗? classpath:/WEB-INF/classes/myfolder/myfile.txt

    不,这根本行不通。类路径根目录包含/WEB-INF/classes,所以路径应该是相对的。

    不要将classpath: 路径与文件路径混淆,它们之间没有任何关系。

    【讨论】:

      【解决方案2】:

      看看http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/resources.html#resources-classpath-wildcards

      此特殊前缀指定必须获取与给定名称匹配的所有类路径资源(在内部,这基本上通过 ClassLoader.getResources(...) 调用发生),然后合并以形成最终的应用程序上下文定义。

      所以classpath: 从你的类路径的根目录开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-17
        • 2017-05-18
        • 2013-05-28
        • 2011-09-23
        • 1970-01-01
        • 2021-10-05
        • 2014-02-26
        • 2012-03-17
        相关资源
        最近更新 更多