00:00
各位同学大家好,咱们继续来学习资源访问resources,刚才呢,咱们说完了resource接口,包括它的事线类,那下面呢,我们来再说下一个接口,这个接口叫resource load,那这个接口首先给大家做个介绍,然后咱们具体进行演示,那咱看下这个接口它的作用到底是什么,我们来看课件中的描述,这里写到啊任提供了两个标志性接口,一个接口叫一个叫这个一会来说先看这接口是做什的,这里写到啊,该接口的实现类的实例可以获取一个resource实例,就是可以得到resource对象,这是它的一个主要的作用。我把这个拿过来,它的主要的作用就是可以得到一个resource的实例,这是一个接口。然后这个接口里边我们看啊,接口中呢,仅有一个方叫get resource,通过这个方法能返回一个实例,这是咱们提到的啊,我把这个给大家也是复制过来。
01:13
写到这位置。它有这么一个方法。用于返回resource的实例。这个是咱们对于他的一个基本书说明。然后咱们继续来看啊,就是这个里边呢有个特点,这特点咱先说一下,然后一会儿我们进行演示来看什么特点啊,这里写到result loader,它采用的是和OB contact相同的策略,那什么策略呢?我们来说一下啊,这句话我先复制过来,然后咱们说的具体点,最终我们再演示。我先拿过来啊这段话。给大家啊,写到这里。把这段话讲给他,稍微区分一下。
02:00
咱们放到这里。那咱们啊,看一下这段话什么意思啊,大家注意啊,咱们之前的例子中呢,一直在写上这么一段代码,那这个代码咱随便找一个啊,之前里面应该都有这个代码,咱们找一下。就是咱们找这个。大家看啊,在这个里边啊。我们看这个位置application context是不是一个接口,然后接口咱们new是不是它有很多的实现类,这个接口中有很多的实验类,比如咱们之前用过就是这个,就是获取类路径下中那个配置文件,包括通过文件系统得到,包括通过注解都能得到,而现在我们用的result loader跟它的策略是一样的,什么策略呢?给大家说明,就是如果说大家看我这里写到啊,你用的是这个file system,然后它里边那个对象就是谁,就是file system实例。
03:07
如果说啊,你这里用的是pass,那它的result就是谁,就是pass实例,所以它里面是采用相同的这个策略,这各位明确,而现在特别注意啊,此任在进行资源访问的时候呢,实际中它是并不需要直接用这实现类,而是通过这个result load的实例调用方法而自动选择用的是哪个实验类,在它里边有这么一个策略,也就说你用file system对应的是这个resource,用pass的是这个resource。它里边会自动选择用哪个策略进行资源访问,这是它里面这个特点,那下面呢,给大家来演示一下这个基本效果,关于load的使用,那咱们来看一下啊这个过程。首先呢,我在这里边,我先建个包,来到刚才的这个项目里边,咱们建个包。
04:07
我写到这位置啊,这个包我们起个名字就叫做resource o。这个包,然后在里边呢,我们先创建第一个类,第一个类我们给它起个名字,我就从里边复制了啊,咱就叫DEMO1,然后在里边我们做什么事情呢?大家看我这里写到的啊。我们现在通过这个pass,然后得到result,用的就是咱们刚才示那个,然后再用这个file。这个进行实现,然后它的resource,那就是file system,这个resource,那咱们下面我们来做一个测试,试一下这个效果怎么样啊,咱来试一下啊。首先我加个resource load DEMO。
05:03
然后在里边我们先加上第一个方法给大家写一下啊,咱就来一个单元测试方法public we,我就叫单一。然后写上之后,在里边我们加上它的具体代码,那我写一下啊,OB cont等于new,上一个叫class叉l application contact,这是咱之前写到的,然后注意这里边啊,我通过content中有个方法叫get resource,在里边呢,加上咱们就是文件的这个相关的路径,给咱加一个at,硅谷点TT,然后大家看现在返回的是不是一个的实例,这是我们做到的,包括实例返回之后。咱们啊,简单做一个输出就是三个name。然后这里边呢,我们输出之后,咱们执行一下啊,看一下最后结果,最后结果呢,肯定是把文件名称输出,这个没有什么特别的,主要咱说这个机制现在我的是,而它里边通过这个我们用get得到的resource实例或者对象,那是谁呢?对应的就是它就这个。
06:24
Pass,这是咱们示第一个,那这里我再演示一个啊,咱再一个。我加上一个test public demo2。然后在里边咱们同样写下application,等于上一个咱加一个叫file system application content,然后用content里边这个get resource,我们加上一个文件路径啊,比如at.TS。然后大家看这里边返回的是不是也是一个result的实例,这个实例对应的是谁呢?我们看一下啊,它对应的就是里边的这个。
07:09
看到它file system resource啊,就是把这个实例进行返回,因为它会根据你这个自动选择最终用的是哪个实验内进行操作,咱们把它也是做一个简单输出,Get带有name啊,那咱们啊快速执行下。然后大家看最终结果肯定都是这个结果,这也是咱们一个基本演示,然后最后呢,把这个特点给大家总结一下啊,咱说一下这个result load接口的特点,我们来做个说明,我这里写到啊,第一段话采用和contact相同的策略,也就是说啊,如果说你用的是file system叉m application contest,那这里边得到resource就是这个system resource,如果用的是卡part这个contest,那它的resource就是卡pass resource。
08:03
但这过程中,其实它里边并不是直接用它的实验类,就并不是直接用这个result,也不是用它,它是怎么做呢?调用result的实例里边这个方法叫get resource,然后通过它啊调用这个result load实例中的get result的方法得到你的资源,然后他会选择用的是哪个实验类,就是刚才说的第个过程。这各位明确啊,然后另外呢,我们使用这个访问资源的时候,也可以通过不同的前缀强制指定你使用的是哪个,就是相关事件类,比如说我这么写用的是不是就是它,我这么写那就是文件啊,这么写就是那个ul resource,这是关于resource load接口的一个介绍,大家把这给它知道啊,重点知道里面这种。特点,或者它里面那种实现的策略。
我来说两句