?
本文檔使用 PHP中文網(wǎng)手冊 發(fā)布
如果bean自身希望通過一些動態(tài)方式?jīng)Q定和提供資源路徑,那么讓這個bean通過 ResourceLoader
接口去載入資源就很有意義了。考慮一個載入某類模板的例子,其中需要哪種特殊類型由用戶的角色決定。
如果同時資源是靜態(tài)的,完全不使用 ResourceLoader
接口很有意義,
這樣只需讓這些bean暴露所需的 Resource
屬性,并保證他們會被注入。
讓注入這些屬性的工作變得如此容易的原因是,所有的application context注冊并使用了能把 String
路徑變?yōu)?Resource
對象的特殊 PropertyEditor
JavaBeans。因此如果 myBean
有 Resource
類型的template屬性,
那它就能夠使用簡單的字符串配置該資源,如下所示:
<bean id="myBean" class="..."> <property name="template" value="some/resource/path/myTemplate.txt"/> </bean>
可以看到資源路徑?jīng)]有前綴,因為application context本身要被作為 ResourceLoader
使用,這個資源會被載入為ClassPathResource
、
FileSystemResource
、
ServletContextResource
等等,這取決于context類型。
如果有必要強制使用特殊的 Resource
類型,那你就可以使用前綴。下面的兩個例子說明了如何強制使用 ClassPathResource
和
UrlResource
(其中的第二個被用來訪問文件系統(tǒng)中的文件)。
<property name="template" value="classpath:some/resource/path/myTemplate.txt">
<property name="template" value="file:/some/resource/path/myTemplate.txt"/>