`

Spring 备忘(五) - 资源访问

 
阅读更多

Spring 资源访问 

 

1. Resource 接口方法

   getInputStream(),exists(),isOpen(),getDescription(),getFile(),getURL()

 

2. 实现类

   UrlResource,ClassPathResource,FileSystemResource,

   ServletContextResource,InputStreamResource,

   ByteArrayResource.

   

3. ResourceLoader接口

   该接口实现类,可获得一个Resource实例

   ResourceLoaderAware接口实现类可获得一个ResourceLoader引用

   

   ResourceLoader接口方法,Resource getResource(String location),返回一个Resource实例.

   

4. ApplicationContext的实现类都实现了ResourceLoader接口.

   

   Resource res = ctx.getResource("some/location/file.txt");//ctx是ApplicationContext的某个实现类的实例

   默认采用和ApplicationContext相同的资源访问策略,

   比如ApplicationContext是由FileSystemXmlApplicationContext,

   则上面的res就是FileSystemResource;

   ClassPathXmlApplicationContext 对应 ClassPathResource

   XmlWebApplicationContext 对应 ServletContextResource

   

5. 使用ApplicationContext,强制指定ClassPathResource,FileSystemResource, 

   Resource res = ctx.getResource("some/location/file.txt");

   上面的调用中使用前缀:

   classpath: -- 使用 ClassPathResource 访问

   file:  -- 使用 FileSystemResource

   http:  -- 使用UrlResource

   无前缀: -- 使用ApplicationContext默认的实现类来实现Resource

   

6. ResourceLoaderAware接口

   该接口的实现类必须持有一个ResourceLoader实例.

   该接口方法 setResourceLoader(),该方法由Spring调用

   当把实现了ResourceLoaderAware接口的实例部署到Spring容器后,

   Spring容器将自身作为参数,调用setResourceLoader()方法.

   

   

7. Resource作为bean的属性注入到bean中

   配置片段:

   <bean id="test" class="xxx.xxx.TestBean">

    <property name="resource" value="classpath:book.xml" />

   </bean> 

   

   上面的TestBean类,有个setResource(Resource res)方法,setter与name对应

   value="classpath:book.xml"表示,Spring容器将一个ClassPathResource作为

   参数,传递给配置的setter.如果不采用前缀,则将采用与该ApplicationContext

   相同的资源访问策略的Resource实现类实例作为参数传递给setter.

   

8. 在ApplicationContext中访问资源(P639)

   classpath*:bean.xml,这种通配符方式访问资源,系统将搜索类加载路径,

   找出所有的匹配的文件. 这种方式 仅仅对ApplicationContext有效.

   纯Resource的实现类,不能这样配置.

   另外,还可使用ClassPathXmlApplicationContext("bean*.xml");

   中bean*.xml这种通配符方式.

   

   file:前缀使用,

   new FileSystemXmlApplicationContext("bean.xml" )和

   new FileSystemXmlApplicationContext("/bean.xml" )

   效果一样,因为FileSystemXmlApplicationContext让FileSystemResource将绝对路径当相对路径使用,

   所以在最前面加/ 无效.

   

   强制使用绝对路径,则 建议加file:前缀,

   new FileSystemXmlApplicationContext("file:bean.xml" )和

   new FileSystemXmlApplicationContext("file:/bean.xml" )

分享到:
评论

相关推荐

    java开发备忘录

    - URL和URLConnection:访问网络资源。 - HTTP客户端库:如Apache HttpClient,用于发送HTTP请求。 8. **Java EE相关** - **Servlet**:服务器端的Java应用程序,用于处理HTTP请求。 - **JSP**:Java Server ...

    s2sh框架实例——个人备忘录系统源码

    【标题】"s2sh框架实例——个人备忘录系统源码" 提供了一个学习和研究Web开发的宝贵资源,特别适合对Java Web技术感兴趣的初学者。S2SH是Struts2、Spring和Hibernate三个开源框架的组合,是Java领域广泛应用的MVC...

    boot-it-up:我介绍 Spring Boot 的演讲的存储库。 大多数谈话都是实时代码,所以这些实际上只是保存点和备忘单

    "boot-it-up"这个存储库是你进行关于Spring Boot演讲的资源集合,主要是为了记录演示过程中的关键代码片段和备忘事项。 在Spring Boot中,主要知识点包括: 1. **起步依赖(Starter POMs)**:Spring Boot通过一...

    MVC.rar_MVC 数据库_java MVC 简单_java MVC mysql_mvc 数据库_备忘录

    - **数据访问对象(DAO)**:用于与数据库交互的具体实现,封装了SQL查询和结果映射。 - **实体类(Entity)**:代表备忘录的Java类,包含了备忘录的所有属性(如标题、内容、创建日期等)。 - **服务接口和服务实现...

    hajiboot:尝试“第一次 Spring Boot”

    在学习过程中,参考文档和社区资源至关重要,Spring Boot 官方文档是获取最新信息和解决方案的重要来源。同时,Stack Overflow 和其他开发者论坛也是解决问题的好地方。 通过“hajiboot”项目,初学者不仅可以学习 ...

    STRUTS备忘录、

    Struts可以与Hibernate、iBatis等持久层框架集成,Spring框架可以用于依赖注入,提高应用的可测试性和解耦。 总的来说,Struts作为一个成熟的MVC框架,为Java Web开发提供了强大且灵活的工具,帮助开发者构建出高效...

    网上教学系统.docx

    - 在线资源浏览:访问课程资源。 - 其他功能:查看系统帮助,退出系统。 - **管理员界面:** - 用户管理:管理学生和教师账户。 - 课程管理:管理课程信息。 - 其他功能:查看帮助,退出系统。 #### 三、技术...

    基于springboot的个性化定制的智慧校园管理系统源码数据库.doc

    3. **Restful API设计**:为了方便不同客户端访问系统,通常采用Restful风格的API设计,确保接口简洁明了、易于理解和调用。 4. **前后端分离架构**:采用前后端分离的设计模式可以提高系统的可维护性和扩展性,前端...

    2020java面试资料大全.zip

    - 单例,工厂,观察者,装饰者,适配器,桥接,代理,责任链,命令,建造者,模板方法,策略,状态,享元,组合,迭代器,访问者,外观,备忘录,模版方法等23种设计模式。 7. **网络编程**: - TCP/IP协议:三次...

    java面试题汇总

    - 行为型模式:模板方法、观察者、迭代器、策略、职责链、命令、状态、访问者、备忘录模式。 10. **框架** - Spring:IoC容器、AOP、事务管理。 - MyBatis:SQL映射、动态SQL、缓存机制。 - Spring Boot:快速...

    2024年java面试题-设计模式面试题

    1. **理解源代码**:许多成熟的框架如JDK、Spring等大量采用了设计模式。熟悉设计模式有助于理解这些框架的内部机制,从而更好地使用它们。 2. **阅读前辈代码**:在实际工作中,经常需要维护或扩展之前开发的项目。...

    通讯录系统文档(初期设计)

    - 开发框架: Struts 2.1 + Hibernate 3.2 + Spring 2.5 + Dao 模式 - 开发工具: myEclipse 7.5 版本 - 数据库: MySQL #### 四、系统开发计划 - **集中讨论**: - 确定项目的主题、功能需求以及进度规划。 - ...

    PMBAFIN6590Spring2021

    PMBA FIN6590 2021Spring欢迎使用金融6590! 这将是GitHub存储库类,您可以在其中访问我的讲座的基础代码,并希望使用RStudio和GitHub学习一些文档处理和版本控制技能。 我发现使用R Notebook(.Rmd或R Markdown文件...

    Java 面试题(按照学习过程复习).zip

    这份"Java面试题(按照学习过程复习).zip"压缩包提供了一个系统性的复习资源,帮助你按部就班地回顾整个学习过程。 1. **基础语法** - 类与对象:理解面向对象编程的基本概念,如封装、继承和多态。 - 数据类型...

    java 面试葵花宝典

    - 行为型模式:观察者、模板方法、策略、职责链、状态、访问者、迭代器、备忘录、命令。 4. **数据结构与算法** - 基本数据结构:数组、链表、栈、队列、堆。 - 排序算法:冒泡、插入、选择、快速、归并、希尔、...

    Java面试宝典:包含Redis各种使用场景,分布式事务,分布式锁,DB,异步并发,JVM,微服务组件,常见的设计模式等

    - 行为型模式:责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者。 通过掌握这些知识点,Java开发者不仅能提升技术水平,也能在面试中展现出扎实的理论基础和实践经验,从而...

    java面试大全

    - 行为型模式:责任链、命令、解释器、迭代器、备忘录、观察者、状态、策略、模板方法、访问者。 以上只是部分Java面试中常见的知识点,实际面试可能会涉及更深入的技术细节,如并发编程的高级特性、JDBC数据库...

    Java面试宝典--牛客网.zip

    3. 行为型模式:策略、模板方法、观察者、职责链、访问者、迭代器、备忘录、命令、解释器模式。 八、JVM优化 1. 类加载机制:理解类加载的双亲委派模型。 2. 垃圾收集:分析GC算法,调整JVM参数以优化内存管理。 3....

    实习或秋招校招-思维导图总结

    - 行为型模式:责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法和访问者模式,关注对象的行为和交互。 3. **Linux.xmind** - 基础操作:熟悉命令行界面,掌握常用命令如ls、cd、...

Global site tag (gtag.js) - Google Analytics