`
yunchow
  • 浏览: 325286 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

利用 Spring 中的 Resource 读取文件和网络资源

阅读更多
利用 Spring 中的 Resource 读取文件和网络资源

package com.isoftstone.spring.beans;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;

public class MyResource implements ApplicationContextAware, InitializingBean,
                      BeanFactoryAware, ResourceLoaderAware
{
    private ApplicationContext ctx;
    private BeanFactory beanFactory;
    private ResourceLoader resourceLoader;

    @Override
    public void setApplicationContext(ApplicationContext ac)
            throws BeansException
    {
        this.ctx = ac;
    }

    @Override
    public void afterPropertiesSet() throws Exception
    {
        MyResource bean = (MyResource) ctx.getBean("myResource", MyResource.class);
        bean.sayHello();
        System.out.println("------------------------------");
        
        bean = (MyResource) beanFactory.getBean("myResource", MyResource.class);
        bean.sayHello();
        System.out.println("------------------------------");
        
        ClassPathResource resource = (ClassPathResource) resourceLoader.getResource("classpath:com/isoftstone/spring/beans/MyResource.class");
        BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream()));
        String line = reader.readLine();
        for (; line != null; line = reader.readLine())
        {
            System.out.println(line);
        }
        System.out.println("--------------xxx----------------");
        
        resource = (ClassPathResource) resourceLoader.getResource("classpath:com/isoftstone/spring/beans/MyResource.class");
        InputStream is = resource.getInputStream();
        byte[] buffer = new byte[1024];
        int len = is.read(buffer);
        
        for (; len > 0; len = is.read(buffer))
        {
            System.out.println(Arrays.toString(buffer));
        }
        System.out.println("---------------xxx---------------");
        
        Resource urlr = resourceLoader.getResource("http://10.40.33.185/ci-master/home.do#");
        BufferedReader reader1 = new BufferedReader(new InputStreamReader(urlr.getInputStream()));
        String line1 = reader1.readLine();
        for (; line1 != null; line1 = reader1.readLine())
        {
            System.out.println(new String(line1.getBytes(), "UTF-8"));
        }
    }
    
    private final void sayHello()
    {
        System.out.println("Hello, World!");
    }

    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException
    {
        this.beanFactory = beanFactory;
    }

    @Override
    public void setResourceLoader(ResourceLoader resourceLoader)
    {
        this.resourceLoader = resourceLoader;
    }
}


2
0
分享到:
评论

相关推荐

    spring-resource

    在Spring框架中,`resource`是一个非常重要的概念,它主要用于管理和访问各种类型的资源,如文件、数据库连接、网络资源等。在本场景中,我们关注的是如何利用Spring的`Resource`接口来读取配置文件。这在Java应用...

    spring Resource管理详解

    在Spring框架中,Resource管理是核心功能之一,它允许我们以统一的方式处理各种类型的资源,如文件、网络连接、输入/输出流等。本篇将深入解析Spring如何管理和操作Resource,以及其在实际开发中的应用。 一、...

    Spring文件资源操作和Web相关工具类盘点

    此外,Resource 接口还提供了 URL 和 URI 的获取方法,方便进行网络资源的处理。例如,如果您需要获取文件的 URL 地址,可以调用 `getURL()` 方法。 Spring 提供的 Resource 实现类不仅仅限于 FileSystemResource ...

    spring中的资源访问宝典

    例如,在`URLTest`类中,我们看到直接使用`URL`对象来获取网络资源,并通过`openStream()`方法读取内容。这种方式在处理复杂的资源访问需求时显得力不从心。 Spring为了解决这个问题,引入了`Resource`接口,它提供...

    spring资源访问

    在Spring框架中,资源访问是一个非常重要的功能,它为开发者提供了一种统一的方式去访问不同类型的资源(如文件、URL等)。这一特性使得开发者能够轻松地在不同的环境中部署应用,而无需担心资源位置的变化。 #### ...

    21 Resource总结慕课专栏1

    本文将重点介绍Spring中的几种Resource实现,并探讨如何在实际应用中利用它们处理静态文件和配置文件。 首先,UrlResource是Spring提供的一种用于包装java.net.URL的Resource实现。它允许开发者通过URL访问各种类型...

    spring3.x 实战资源教程

    - **UrlResource**:用于访问网络资源。 #### 3.3 访问Resource - **使用ResourceLoader**:可以通过ApplicationContext获取ResourceLoader,然后调用其`getResource(String location)`方法获取Resource对象。 ###...

    读取war包或jar包内的文件

    ClassLoader是Java中负责加载类的组件,它知道如何从不同的源(如文件系统、网络或ZIP文件)加载类和资源。 2. **getResource() 和 getResourceAsStream()**: 这两个方法是ClassLoader和类的Class对象提供的。`get...

    图片流转存Base64编码然后转图片 Spring 框下的

    在Spring框架中,我们还可以利用Spring MVC的`Resource`和`ResourceLoader`来处理保存和提供下载的图片资源。例如,将解码后的图片保存到服务器的某个目录,然后返回一个`Resource`对象供前端访问: ```java ...

    18 Spring IoC容器如何读取应用外部的xml,txt,图形或者属性文件?慕课专栏(1)1

    这里,`file:`前缀告诉Spring我们希望从文件系统中读取资源,后面跟着的是文件的完整路径。这样,Spring容器就能加载并解析这个外部XML文件,进而管理其中定义的Bean。 了解了基本用法后,我们来探讨一下Spring读取...

    Spring ioc源码解读

    - **资源接口**:通过使用Resource接口来抽象Bean定义的数据来源,使得Bean的定义可以来自多种资源,如文件系统、网络等。 - **Bean定义读取**:Bean定义的读取过程通过委托给BeanDefinitionReader完成,例如...

    跟我学Spring3(4.1)资源之基础知识Java开发J

    通过`Resource`接口,Spring提供了一种统一的方式来读取和操作这些资源。例如,开发者可以方便地读取类路径下的配置文件,或者从网络上获取远程数据。 Spring的IoC容器负责管理和配置应用程序的bean,而资源管理则...

    Java Resource

    8. **Spring框架中的资源处理**:在Spring框架中,有专门的`Resource`接口和`ResourceLoader`来处理资源,它们提供了丰富的功能,如URL转换、文件读写等。 9. **错误处理和资源关闭**:确保在使用完资源后及时关闭...

    SpringBoot读取resource文件代码实例

    在Spring Boot应用中,有效地读取resource文件是开发过程中常见的需求。resource文件通常包含了配置信息、静态资源(如HTML、CSS、JavaScript)或其他应用程序需要的数据。Spring Boot为此提供了便捷的API和注解来...

    模拟spring中的ClassPathXmlApplicationContext类的实现

    `Resource`对象封装了对资源的访问,使得我们可以跨不同环境(如文件系统、网络等)读取资源。 3. **解析XML**:一旦获取到XML文件,Spring使用`DocumentBuilder`解析XML文档,将其转换为DOM(Document Object ...

    spring3.x的读书笔记-2

    在Spring框架中,Resource接口是核心组件之一,用于表示应用程序中的资源,比如文件、网络连接、输入/输出流等。在上述代码示例中,我们可以看到两种Resource的实例化方式:FileSystemResource和ClassPathResource。...

    16 Resource的前生今世慕课专栏1

    在Spring框架中,`Resource`接口扮演着至关重要的角色,它是Spring核心模块(`spring-core`)的一部分,用于抽象出各种不同类型和来源的资源访问。Spring通过`Resource`接口统一了对文件、网络、类路径等不同资源的...

    Restful WebService + Spring

    在IT行业中,RESTful Web Service和Spring框架的集成是一个广泛使用的解决方案,特别是在构建现代、可扩展的分布式系统中。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于...

    跟我学spring3

    - **4.1 基础知识**:介绍Spring如何管理和访问各种资源,如文件、数据库连接、网络资源等。 - **4.2 内置Resource实现**:讲解Spring内置的Resource实现类,如ClassPathResource、FileSystemResource等。 - **...

Global site tag (gtag.js) - Google Analytics