00:00
刚才啊,我们在讲conflict的时候。给大家说了conflict是什么呢?它对应的是。是不是这个东西它的配置文件。它的注册信息,但从这就可以知道啊,一个service,这so是单例呀,一个service肯定是对应一个。Solid注册。对不对?这是没问题的,也就意味着一个so就会对应一个so conflict。所以这大家应该知道啊,Conf和之间的关系肯定是一对一的关系。那么刚才给大家也说了,通过config我们可以获取到一个很重要的对象。是solid contest。
01:00
这个对象。你从名字可以看到它是是不是上下文呢?什么叫上下文?上下文就是环境的意思,就是整个的运行环境。这是一个很重要的对象。一个。我问问大家啊,咱们看到这儿。你看看啊,我这里边有俩是吧。一个这个一个这个,你说这俩它的环境一样不一样。肯定是一样的呀。对不对。一个应用里边所有的它的环境,上下文环境都是一样的,也就是说一个应用程序就有一个。的执行环境。
02:01
那就意味着我们的contest这个对象是一个应用,就一个。一个应用就一个。哎,这是。我们大家要首先知道的。那么也正因为它是一个应用就一个,所以大家看看这你看看他是个接口啊,对吧。这接口的实验类是谁?这边在这输出的有吗。你看这个实现类的名字很有意思,叫什么叫application contest。是应用啊,不对,不是应用的意思吗?它是代表整个程序啊,我们整个程序叫一个应用。应用的上下文。和T上下是一致的。所以contest还有另外一个别名叫application,就是应用,它就可以代表了整个应用。
03:08
那好了,我们看一下API。Contest。Contest。这里边儿的方法你可以看一下啊,很多。是不是?方法很多。但就目前来说,我们先讲目前就我们现有现有这个阶段啊,我们所掌握的知识,从这个角度来说,我们常用的方法有哪些呢?Get attribute。A attribute,这是个什么东西?属性啊是吧。你注意这个上下文环境啊,这个应用的上下文也好,执行的上下文也好。
04:01
这个环境到底都包含什么东西?它可以包含有初始化的一些参数。另外。还可以包含。属性。是所有的整个应用都可以共享的属性。那么这就是获取这个属性。当然了,我们给这个属性啊,存放属性的这个区域起了个名字叫做玉。叫属性空间。当然,我们一般简称为与。所以这个属性也称为玉属性。当然具体怎么定义,我们一会儿说先先知道这个概念啊,有个寓属性的概念,它是个全局性的。
05:04
Get attribute指定名称的属性是吧?Get attribute names。获取所有的是吧,属性名称返回值ineration。啊,这个我们倒是不常用啊。Get contest。获取subject contest,那本身他自己是不是也可以通过什么your I,这个我们也不常用。啊。啊,这个contest这个是比较常用的。它是比较常用的,是干嘛的。Contest pass其实就是我们应用的名称。我们整个应用的名称,一会儿说get in parameter获取化参数,诶初始化参数我们是不是刚刚说过呀。是哪说的是里边的初始化参数,你注意那个是。
06:02
只有你那个能用。你这个初始化参数啊。这个出产参数只有这个能用。你其他的不能用,而我现在说的这个除法参数是指的谁是整个应用的所有S都能用的。Get parameter names。获取所有的触发参数的名称。再往下看,诶,这个get real。这个啊很重要,用的非常多。获取真正的路径什么叫真正的路径?一会儿说。啊,当然了,像他啊,我们到后边会用,现在不会用它。在看。这。
07:00
Remove attribute,刚才不是get attribute吗?这是删除你指定的属性。Set attribute。这是设置。设置。你指定的属性的值。好了,下面呢,我们就来用一下它啊。怎么用?再写一个例子。再写一个dynamic web3。我这个叫contest。
08:01
来一个class。叫还是some com点北京?Power node。第二,S接口。好。当然,我要想获取萨格,我是不是就得。获取到,呃,要想获取contest是不是就得获取到con呀。所以我给这。Private solid con con。this.get。哎,错了啊,This点。
09:00
Con con。好。其他的就不管了啊,这就不管他了好。获取solid contest对象。Config。第二,Get。Contest。我这个啊,就叫SC了,不写那么麻烦了。会到他以后啊,我们先来这。先说初始化参数。
10:01
这初始化参数。当然现在先不能说其他的,因为我们现在是不是。还没有注册solid呀。是吧?Solita name。上。So class。拷贝全名儿。So mapping。URL pattern-sum对吧,好,注册我就写完了,下边要做什么。
11:14
下边。我要定义初始化参数了。定义。初始化参数。你看。大家看这第一个contest上下文参数啊,它定义的就是我们的整个应用都可以共享的初始化参数。那叫什么?这写什么,那我还写刚才那个了啊,这个北京动力节点。
12:09
再来一个。你看是不是还可以写再写一个啊,Dress。中国北京就这就行了啊啊在北京大兴亦庄大族企业湾是吧。好。那这个出来参数我也写完了下面。获取所有初始化参数名,这和刚才那个写法一模一样啊,IC点。Get init parameter name4。然后。
13:00
内姆斯。便利吧,Well names.has more elements这我就不加那么详细的注释了啊,names.next element。他肯定是name。然后我再来一个获取它的值value value是c.get parameter name获取到的就是它的value,然后我输出。输出name。等于。Value。OK啦。现在。
14:00
删掉了是吧,原来那个删掉了。好,Run as。走。啊,这个写个什么。我们那个当然是萨。没问题吧,Address中国北京,这谁都能用的啊,哪个都可以。都可以访问的。好,这是初始化参数的,咱们就说过了再来说,谁再来说。艺术性。玉属性,我这儿设置玉。属性,这个玉属性是什么?我们说了,实际上是玉属性空间中所存放的一个属性啊,玉属性。IC点。
15:01
I点点什么点set attribute。比如我这儿。再再再再写个什么,比如我这个叫。这样吧。这这个。来个一一没有。可以吧,Email啊,Email是什么呢?啊。Email随便吧,叉叉叉什么126.com。随便写了啊。当然,我还可以再放。Email。这个。Mobile是吧,电话号码啊,1234567是吧,那就这个设置属性。
16:10
然后。然后我就可以获取了,你注意这个获取就获取,你怎么获取它,你在这儿获取吗。我不跟你在这儿获取,在这儿获取那有啥意思啊。你注意我们这个预属性啊,是全局性的,一旦你设置了它以后,任何一个都能访问。那那那那怎么怎么做,我再给你定一个。这不是萨吗?我再来一个。这叫other。啊,手里。记着啊,我还没注册呢,这样吧,先注册吧,不要一会儿又忘了。
17:02
这是other。嗯。Other。这。哦,是吧。啊,这个啊好。那就这了,这改过了啊。这个既然是other,这个other里边。我这东西就不要了,他肯定能访问啊,我就不要了。不要啦,我要什么?把它删掉。Other里边我不是设置了,而是。获取意属性。获取预属性。
18:01
的值。那我现在获取了c.get in per,哪一个来个?Mobile。然后我这个就叫mobile。就叫没。哎,我怎么是错了啊?怎么能是他呢?预属性c.get attribute。啊,毛病。它的返回值。Mobile。当然你现在我们知道mobile它实际是什么,你给它放的时候是字符串对吧,所以我这边就可以直接获取字符串。
19:02
呀,怎么回事儿?你看看。他说了啊,Miss match类型匹配有误。Can'convert from object to string不能转换,从哪从object?它返回支持object类型的,这是spring类型的,你要将一个object,这是所有类的父类,将一个父类对象给了子类,这叫什么?这叫多肽,这是多肽里边的什么下转型,Java里边是不支持下转型的。不支持真正意义的下转型啊,所以这时候怎么办,我们需要强转。这就OK了。我就可以活去了。那获取好,现在我获取它啊,啊这样写吧。
20:12
Mobile等于mobile。好。就这,现在就先写到这儿。服务器重启。注意,我先刷新它走。刷新以后。这个里边最关键的是,是不是我给他放了玉书星理里边是不是给他放直了,现在我再访问。我换个浏览器访问行吧,其实怎么访问都行。当了,怎么访问都行。我就拷贝它。
21:02
这other。我把价给你清掉。把控制台给你清掉。你看一下。走。什么东西?Mobile。是吧?出来了吧,你说为什么会出来俩,这是它360浏览器的问题啊,你看我直接刷新一下。肯定是一个是没问题的,可以获取到吧。好,可以获取到。在这儿我还能给他修改呢。你看着啊,我c.set a tribute。谁呀?刚才你不是1234567吗?啊,这是7654321反过来了啊。
22:02
然后你这个是什么。这可不是,这不是新增的啊,这是重置。从置御属性的值。我还能删除,删除玉属性我删掉谁。我就删掉那个。嗯,Email是吧,ic.remove attribute。Email。我在other里边删掉的啊,然后我在这儿。干嘛,我在这儿获取一下获取。这个。
23:01
Mobile和email的值。获取与属性的值。ic.get attribute。Mobile。这是mobile。再来一个是不是就是email啊。对吧,我输出。Mobile等于mobile。Email。好,大家注意啊,你。我重新发布一下。
24:03
你注意这个运行。我是这样运行的啊,我一会儿要先运行一遍some,我先运行它,大家想想我是不是设置啊,设置俩值,现在设置完以后,这是不是马上就获取了,肯定没问题,MOBILE1234567,然后它呢是叉叉叉。紧接着我在运行他,运行他我这边获取到肯定也是1234567,这没问题的吧。然后我是不是把它改成7654321了。紧接着这是不是把email删掉了,我这个运行完以后,我再运行它。你注意我再运行它要有个问题,我再运行它,它这又重新设置了一次了,是吧,又重新设置一次。那不好。
25:01
那这样不好,这样不好,那最简单的方式,咱们也不用思考那么多。直接。从这。这不简单吗?是不是third third里边我把some里边这俩。直接弄过来。当然不能直接弄它啊,我还得要他呢,是不是整个。哎,这有这个是吧,那我就直接要他就行了。抗X。看着没?耶,我这。
26:00
CTRLX。CTRL非好了。大家看啊。现在我在四里边儿。干嘛?Third里边是不是又重新读摩拜小合?Email啊,好。注册。这是色的啊。好,Third注册过了啊。关了它,大家看我一会儿这样运行,先运行它。
27:00
给它放进去,再用它给它。是不是修改了?然后是不是又删除了,再用它这里边儿这个值肯定是是不是改过的765321这个呢。没了。他就没值了。诶,那这个没值了,他已经被删掉了呀,那他会获取到什么东西呢。运行一下,正好刚才重新发布过了啊。好。我给这儿先运行三。走。没问题吧,这萨的结果啊,出来了。我再运行啊,我就直接给这儿运行了啊走。啊,里边是不是出来的是mobile是1234567啊。我在运行third的,你注意。我这给他是不是把这个1234567给它改成7654321了,并且把这个是不是给它删掉了,我现在运行四的这俩值,一个是改过的,一个是删掉的。
28:14
Third。我这个没删,这个给他删掉啊。走。什么是不是765321,这个是不是已经删掉了没了。也就是说我们的整个属性。他是。全局性的。所有solid是不是共享的呀,你不管谁改了,其他读到的都是改过的。OK。再来一个,再来一个方法啊。
29:01
再来一个什么呢?再来一个。嗯,咱们给哪儿演示呢?给third里边,Third里边就third里边。还有俩方法没说呢啊,一个是获取。Solve,不是这个contest pass,我们看一下contest pass是个什么,Get contest pass,这是个很重要的东西。它是什么东西,Contest?还有。先不说其他的,先把pass说了。Third啊,这是third。我刷新走。
30:01
Contact是什么?你看着它。这是不是我们应用的名称啊。你看看。是不是就是他?Contest pass就是我们应用的名称。它获取到的就是应用名称这个东西,记得它叫contest。好,还有一个方法。还有一个方法叫real pass,这个pass是什么?我们以后的代码里边啊,经常会遇到这种情况,我给这儿要建个目录,比如要放图片images。我要获取到这个目录。的路径。获取它这个目录的路径,这目录路径怎么获取呢?ic.get real pass。
31:02
我获取到他的。真实路径。这个所谓真实路径,实际上是基于。基于本地盘符的先看一下啊好,他重新发布过了。走。看到没?是不是地盘什么什么什么什么是吧,现在就在这儿放着呢。是基于。基于本地文件系统的,这是什么呀?诶给大家说一下啊,我们前面是不是说过LTTP协议啊,其实啊,我们本地文件系统人家也是一种协议,什么协议叫file。
32:01
Fair杠杠。冒号杠杠,其实我们平常写的这种路径,这把这个东西都给省略了,默认就是他的,我直接回车,大家看是不是嗨到这儿了。这说明什么?说明这俩路径是相同的,也就是说我们的这个。Get real pass是获取到。获取到。我们基于。File协议下的路径,而我现在填的这个东西啊,为什么这要加个杠,回头给大家专门解释路径问题会专门给大家解释啊。那么这是什么这种以杠这这种写法啊,这是都是基于T的这种uri写法。是基于itp协议下的这种U的写法,而我们获取的real pass是基于file协议下的,所以这俩相当于把路径啊,把这个协议改了,这种协议下的路径转换成了这种协议下的路径,这是最本质的东西。当然了,我们不用。
33:21
不用把它弄这么深的话,也就是说把一个这种uri这种路径给它转变成。基于本地文件系统下的路径,知道这个就OK了。那么对于常用的方法啊。就这些给大家都说过了。这就是我们的contest。
我来说两句