Spring Resource之作为依赖的资源

如果一个bean自己能够通过一些动态的过程来决定和提供一些资源路径,那么通过ResourceLoader接口来加载资源会是更有效的。考虑作为一个例子的加载模板,需要的指定的资源取决于用户的角色。如果资源是静态的,那么那么就可以完全不适用ResourceLoader接口。

所有的应用上下文注册和使用能够将String路径转换成Resource对象的特殊的javabean PropertyEditor注入属性时不重要的。所以如果myBean有一个Resource的模板属性,那么它可以用一个简单的字符串来注册那个资源:

<bean id="myBean" class="...">
 <property name="template" value="some/resource/path/myTemplate.txt"/>
</bean>

注意Resource路径是没有前缀的,所以因为引用上下文本身将会被当做一个ResourceLoader,所以资源自身将会通过一个CLassPathResource、FileSystemResource, 或者 ServletContextResource 来加载,用哪个取决于上下文的具体类型。

如果需要强制使用一个指定的Resource类型,那么可能就需要前缀了。下面的两个例子表示如果是强制指定一个ClassPathResource和一个URLResource:

<property name="template" value="classpath:some/resource/path/myTemplate.txt">
<property name="template" value="file:/some/resource/path/myTemplate.txt"/>
原文地址:https://www.cnblogs.com/zhangminghui/p/4379074.html