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

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"/>
主站蜘蛛池模板: 马龙县| 鄂托克旗| 五河县| 义乌市| 酉阳| 利津县| 壤塘县| 怀安县| 辉县市| 会东县| 右玉县| 凌源市| 大余县| 建水县| 蓝田县| 紫云| 巍山| 左权县| 隆化县| 滦南县| 银川市| 千阳县| 南雄市| 江永县| 崇明县| 丹凤县| 南城县| 藁城市| 高陵县| 宿州市| 曲麻莱县| 揭阳市| 淳安县| 吐鲁番市| 达日县| 嫩江县| 华宁县| 深州市| 东源县| 宝鸡市| 博野县|