• 学习 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

    转载于:https://www.cnblogs.com/victorbu/p/10431712.html

  • 相关阅读:
    %取余的用法
    数据结构总结
    【OpenCV】访问Mat中的每个像素值
    逻辑运算的妙用-Single Number
    Android EditText设置为Number类型后获取数字
    XX.exe 系统找不到指定文件
    error LNK2001: unresolved external symbol _main
    [c++] opencv加载png
    CDH 不能监控hadoop状态
    GoLang安装
  • 原文地址:https://www.cnblogs.com/twodog/p/12135140.html
Copyright © 2020-2023  润新知