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" )
相关推荐
- URL和URLConnection:访问网络资源。 - HTTP客户端库:如Apache HttpClient,用于发送HTTP请求。 8. **Java EE相关** - **Servlet**:服务器端的Java应用程序,用于处理HTTP请求。 - **JSP**:Java Server ...
【标题】"s2sh框架实例——个人备忘录系统源码" 提供了一个学习和研究Web开发的宝贵资源,特别适合对Java Web技术感兴趣的初学者。S2SH是Struts2、Spring和Hibernate三个开源框架的组合,是Java领域广泛应用的MVC...
"boot-it-up"这个存储库是你进行关于Spring Boot演讲的资源集合,主要是为了记录演示过程中的关键代码片段和备忘事项。 在Spring Boot中,主要知识点包括: 1. **起步依赖(Starter POMs)**:Spring Boot通过一...
- **数据访问对象(DAO)**:用于与数据库交互的具体实现,封装了SQL查询和结果映射。 - **实体类(Entity)**:代表备忘录的Java类,包含了备忘录的所有属性(如标题、内容、创建日期等)。 - **服务接口和服务实现...
在学习过程中,参考文档和社区资源至关重要,Spring Boot 官方文档是获取最新信息和解决方案的重要来源。同时,Stack Overflow 和其他开发者论坛也是解决问题的好地方。 通过“hajiboot”项目,初学者不仅可以学习 ...
Struts可以与Hibernate、iBatis等持久层框架集成,Spring框架可以用于依赖注入,提高应用的可测试性和解耦。 总的来说,Struts作为一个成熟的MVC框架,为Java Web开发提供了强大且灵活的工具,帮助开发者构建出高效...
- 在线资源浏览:访问课程资源。 - 其他功能:查看系统帮助,退出系统。 - **管理员界面:** - 用户管理:管理学生和教师账户。 - 课程管理:管理课程信息。 - 其他功能:查看帮助,退出系统。 #### 三、技术...
3. **Restful API设计**:为了方便不同客户端访问系统,通常采用Restful风格的API设计,确保接口简洁明了、易于理解和调用。 4. **前后端分离架构**:采用前后端分离的设计模式可以提高系统的可维护性和扩展性,前端...
- 单例,工厂,观察者,装饰者,适配器,桥接,代理,责任链,命令,建造者,模板方法,策略,状态,享元,组合,迭代器,访问者,外观,备忘录,模版方法等23种设计模式。 7. **网络编程**: - TCP/IP协议:三次...
- 行为型模式:模板方法、观察者、迭代器、策略、职责链、命令、状态、访问者、备忘录模式。 10. **框架** - Spring:IoC容器、AOP、事务管理。 - MyBatis:SQL映射、动态SQL、缓存机制。 - Spring Boot:快速...
1. **理解源代码**:许多成熟的框架如JDK、Spring等大量采用了设计模式。熟悉设计模式有助于理解这些框架的内部机制,从而更好地使用它们。 2. **阅读前辈代码**:在实际工作中,经常需要维护或扩展之前开发的项目。...
- 开发框架: Struts 2.1 + Hibernate 3.2 + Spring 2.5 + Dao 模式 - 开发工具: myEclipse 7.5 版本 - 数据库: MySQL #### 四、系统开发计划 - **集中讨论**: - 确定项目的主题、功能需求以及进度规划。 - ...
PMBA FIN6590 2021Spring欢迎使用金融6590! 这将是GitHub存储库类,您可以在其中访问我的讲座的基础代码,并希望使用RStudio和GitHub学习一些文档处理和版本控制技能。 我发现使用R Notebook(.Rmd或R Markdown文件...
这份"Java面试题(按照学习过程复习).zip"压缩包提供了一个系统性的复习资源,帮助你按部就班地回顾整个学习过程。 1. **基础语法** - 类与对象:理解面向对象编程的基本概念,如封装、继承和多态。 - 数据类型...
- 行为型模式:观察者、模板方法、策略、职责链、状态、访问者、迭代器、备忘录、命令。 4. **数据结构与算法** - 基本数据结构:数组、链表、栈、队列、堆。 - 排序算法:冒泡、插入、选择、快速、归并、希尔、...
- 行为型模式:责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者。 通过掌握这些知识点,Java开发者不仅能提升技术水平,也能在面试中展现出扎实的理论基础和实践经验,从而...
- 行为型模式:责任链、命令、解释器、迭代器、备忘录、观察者、状态、策略、模板方法、访问者。 以上只是部分Java面试中常见的知识点,实际面试可能会涉及更深入的技术细节,如并发编程的高级特性、JDBC数据库...
3. 行为型模式:策略、模板方法、观察者、职责链、访问者、迭代器、备忘录、命令、解释器模式。 八、JVM优化 1. 类加载机制:理解类加载的双亲委派模型。 2. 垃圾收集:分析GC算法,调整JVM参数以优化内存管理。 3....
- 行为型模式:责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法和访问者模式,关注对象的行为和交互。 3. **Linux.xmind** - 基础操作:熟悉命令行界面,掌握常用命令如ls、cd、...