官术网_书友最值得收藏!

Handling resources

Spring Framework provides excellent support for accessing low-level resources, thus solving many limitations of Java's standard java.net.URL and standard handlers. The org.springframework.core.io.Resource package and its many concrete implementations form a solid foundation for Spring Framework's robust resource handling.

Resource abstraction is used extensively in Spring itself, inside many implementations of ApplicationContext—it's actually very useful to use as a general utility class by itself in your own code in order to access resources. You will find the following resource implementations that come supplied right out of the box in Spring:

Generally, you do not directly instantiate any of these resources; rather, you use a ResourceLoader interface to do that job for you. All ApplicationContext implement a ResourceLoader interface; therefore, any ApplicationContext can be used to obtain resource instances. The code for this is as follows:

ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"application-context.xml"});
Resource classPathResource = ctx.getResource("classpath:scripts/tasks-schema.sql");

Resource fileResource = ctx.getResource("file:///scripts/master-data.sql");

Resource urlResource = ctx.getResource("http://country.io/names.json");

You can inject resources into your beans by simply passing the filename or URL of your resource as an argument, as shown here. ApplicationContext, which is a ResourceLoader interface, will create an instance of an appropriate resource implementation based on the URL you supply:

@Value("http://country.io/names.json")
private Resource countriesResource;

Here is the XML version of injecting a resource:

<property name="countriesResource" value="http://country.io/names.json"/>
主站蜘蛛池模板: 高青县| 鄄城县| 丰宁| 荔浦县| 东兰县| 阳春市| 克什克腾旗| 云安县| 东明县| 旬邑县| 景德镇市| 怀柔区| 龙州县| 五河县| 甘谷县| 垫江县| 广灵县| 黄冈市| 专栏| 枣庄市| 根河市| 洪江市| 曲阳县| 连山| 富民县| 弋阳县| 高密市| 莲花县| 兴文县| 康马县| 崇信县| 双峰县| 虹口区| 广水市| 汤原县| 孟村| 丹寨县| 获嘉县| 大丰市| 达孜县| 布拖县|