• 学习 Spring (七) Resource


    Spring入门篇 学习笔记

    Resource: Spring 针对资源文件的统一接口

    • UrlResource: URL 对应的资源,根据一个 URL 地址即可构建
    • ClassPathResource: 获取类路径下的资源文件
    • FileSystemResource: 获取文件系统里面的资源
    • ServletContextResource: ServletContext 封装的资源,用于访问 ServletContext 环境下的资源
    • InputStreamResource: 针对于输入流封装的资源
    • ByteArrayResource: 针对于字节数组封装的资源

    ResourceLoader: 所有的 application context 都实现了 ResourceLoader 接口

    public interface ResourceLoader{
        Resource getResource(String location);
    }
    

    ResourceLoader 注入参数前缀:

    前缀 例子 解释
    classpath: classpath:com/myapp/config.xml 从 classpath 加载
    file: file:/data/config.xml 从文件系统加载
    http: http://myserver/logo.png 从 URL 加载
    /data/config.xml 依赖于 ApplicationContext

    示例

    新建类:

    public class MoocResource implements ApplicationContextAware  {
    	
    	private ApplicationContext applicationContext;
    	
    	@Override
    	public void setApplicationContext(ApplicationContext applicationContext)
    			throws BeansException {
    		this.applicationContext = applicationContext;
    	}
    	
    	public void resource() throws IOException {
    		//Resource resource = applicationContext.getResource("classpath:config.txt");
    		//Resource resource = applicationContext.getResource("file:E:\project\java\demo\learningspring\src\main\resources\config.txt");
    		//Resource resource = applicationContext.getResource("https://www.cnblogs.com/victorbu/p/10430698.html");
    		Resource resource = applicationContext.getResource("config.txt");
    		System.out.println(resource.getFilename());
    		System.out.println(resource.contentLength());
    	}
    
    }
    

    添加配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd" >
            
            <bean  id="moocResource" class="com.karonda.resource.MoocResource" ></bean>
    	
     </beans>
    

    添加测试类:

    @RunWith(BlockJUnit4ClassRunner.class)
    public class TestResource extends UnitTestBase {
    	
    	public TestResource() {
    		super("classpath:spring-resource.xml");
    	}
    	
    	@Test
    	public void testResource() {
    		MoocResource resource = super.getBean("moocResource");
    		try {
    			resource.resource();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	
    }
    

    源码:learning-spring

  • 相关阅读:
    C++数据类型与C#对应关系 c#调用WINDWOS API时,非常有用(转)
    Web应用系统中关闭Excel进程
    jquery下一个空格带来的血案
    导出Excel时发生COM组件失败的解决方案
    水晶报表的交叉表中增加超级链接
    JavaScript和ExtJS的继承 Ext.extend Ext.applyIf (转)
    SQL SERVER 2000数据库置疑处理
    PHP中对淘宝URL中ID提取
    树莓派+蓝牙适配器连接蓝牙设备
    树莓派摄像头模块转成H264编码通过RTMP实现Html输出
  • 原文地址:https://www.cnblogs.com/victorbu/p/10431712.html
Copyright © 2020-2023  润新知