前面的几节课程,我们学习了IoC容器,使用了xml和注解的方式加载bean对象
那么spring框架还包含些什么呢?


spring官方为我们封装了Resource接口 可以方便的获取资源文件夹下面的内容
官方地址https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-reference/core.html#resources
下面我们看下这个接口如何使用,并且如何和IoC容器进行结合。

在我们资源文件夹下有个client.txt文本文件 我们将其内容读取出来显示在控制台
在MySpring里面测试下代码

运行结果

下面通过FileSystemResource方式获取资源文件夹下的文件(绝对路径方式)

运行结果

下面我们看官方文档

spring本身提供一个ResourceLoader接口 可以使用相同的代码完成文件的读取 只不过需要加入前缀
前缀可以看官网如下

接下来代码演示下
ResourceLoader的实例化

运行结果

前面几节课我们的代码都是在统一的IoC容器中写的 后面我们学习的spring mvc IoC容器也是在我们网站启动的时候帮我们加载好了需要的类
所以我们需要学习如何在IoC容器中得到Resource
在springLean.Users包下面创建一个MyTest1文件 目录如下

代码如下

在MySpring里面调用

运行结果

以上代码为我们手工的创建了ResourceLoader 那么每次我们要在某些方法里读取资源文件 都要创建ResourceLoader 这个不是很方便 既然使用了IoC容器 肯定提供了统一的读取对象
接下来看官方文档

通过看源码AnnotationConfigApplicationContext可以知道applicationContext继承于ResourceLoader接口
因此为了保证IoC容器中可以使用同一个对象读取资源文件
那么在MyTest1中如何获取上下文对象呢?
我们在入口函数中创建一个IoC容器来进行启动 而SpringLean.User包下面的类全是在IoC容器内部的
要获取外部的上下文对象有两种方法


下面我们演示第二种方法
在MyTest1中

直接打入@AutoWired注解 引入application属性 不需要再配置类里面写入bean 直接可以自动注入
运行结果

同样我们还可以直接使用ResourceLoader

运行结果

以上即为在IoC容器中使用Resource接口
网友评论