00:00
下面呢,我们来看一下注入属性值的细节。指的是谁呀?指的是这个二百四和这个上海这个属性指的细节。我们在这块看到的话呢,我这个值是如何注入的呢,就直接写了一个Y6,写了一个240,我们看我们这个卡。在这里边二百四是不是住给了这个max b的呀?大家我们注意到这块这个字符串,Spring会自动的帮我转成。这个数据类型看到了吧。那字符串本身呢,就不用说了,那我注入这个Y6值的话,除了使用这个Y6属性以外,还可以怎么写呢?我还可以写为。白溜子节点。来看。Y流,比方说二百五吧。有点不吉利哈,二百五就二百五吧,好吧。
01:00
找一个。瞧瞧,哎,二百五没问题。看PPT。字面值。可用字符串表示的值。可以通过Y流元素标签或者是Y流属性进行注入,嗯,基本数据类型,封装类类型,String类型都可以通过这样的方式进行注入。看底下这个哈,如果四面纸里边包含一些特殊字符的话,我们可以使用这个C塔把那个特殊字符给它包裹起来。什么意思呢?回到这儿,比方说哎,我注入的这个,呃,上海就是那个公司的地址哈,我要加上一个电话号给它包起来。保存来看是不是有错了。我们跑一下,看看有没有车。哎哟,确实是有错。为什么呀,因为在这个X文档里边吧,这个监括号是不是特殊标记啊。
02:02
是吧,这样写不行,那于是呢,把这个拿出来。按一下。在Y里边。写一个c data。写一个。上海。那个标记哈保一个。看到了吧。这样这样就没问题了,说啊如果包含特殊字符。如果啊。字面值。包含特殊是否?可以使用D并包裹起来。
03:13
好了,我们还看到。这个属性值呢,除了用Y流属性来进行这个注入,我们还可以使用这样的一个Y流子节点进行注入。属性值也可以。使用。Value。子节点。进行配置转。OK,就是我们所谓的这个叫字面值。下面我们来看引用其他的病。我们现在配的这个car呢,就是配了一个孤零零的car是吧,我们在实际上我们在实际开发的时候啊,这个B之间通常需要具备相互的引用关系,那B之间这个引用在。
04:07
Spring里边如何进行配置呢?我首先呢,我来写一个类。Person。人嘛,人有车嘛,是吧。Private仍有一个名字。拥有一个年龄,OK,这个人呢,需要有一辆车。好,我们提供对应的get方法。重写一个to string。我们来配置一下这个person。Bin。AD。Glass person。
05:06
不敬。STEM。Value。Armed。Property。Age。24 OK。这边就是这个啊。什么呀?Car,他说这个car还能用Y6表示吗?Y6表示的是四面值啊,基本数据类型string型,包装类型是吧,像这个引用类型,这怎么搞啊。说它指向。哪个呀?Car嘛,对吧,比方说指向这个car to看到了吧,说哎,呃,这个指向它不就可以了吗。这有个神马问题呢?看一下。没有一个不带餐的构造器,没有吗?
06:03
哦,兔子论方法是吧,这写错了。顾子刚才搞了一个。完了复制一下。我们搞这个person。等于CDx.getin。Out。P一个。看到了吧,哎,康姆24这个卡就指向的我们这个宝马上海这个卡对吧。拿过来。啊,这块的话呢,就是建立了B之间的引用关系。可以使用property reference属性建立。
07:03
并之间的引用关系。回来。看PPT说组成应用程序的B,嗯,需要相互协助以完成应用程序的功能,这个时候呢,B需要相互引用,我们可以使用reference元素或者reference属性都可以达到这个目的。Restaurant元素什么意思啊,就类似于我们上面这个。Y6元素。就是说也可以这样写是吧。把这个拿掉。二。Reference。B指向的是car two也是可以的。一杠。没问题是吧,也可以这么写,Property把这个注掉了哈。
08:03
这样写,写成一个。Car。Car。怕吐吧,这样也是OK的,两种方式都可以。好,我们也可以在属性或构造器内部包含一个B的声明,这样的病呢,称之为内部病。啥意思呢,就是说我现在这个B呢,是我引用的外部的一个B是吧,我已经事先啊声明好的,那我实际上我也可以引用。内部病什么叫内部病呢?就是。我悄悄的在里边创建一个B,就叫内部B,看看效果。标圈的什么意思啊,外边的bin用不了不bin OK,演示一下。内部。瞧瞧。
09:02
你不是需要一个卡吗。是里边就直接来写一个B吧。Glass car。OK。UNPUA。第一个呢?这品牌。不错。第二个呢,是。公司长安。第三个呢是价格。Y价格比方说是20万。告诉他这个类型是double类型,OK,我们看一下这个卡。找一个。大家看是福特吧,啊,长安福特20万。
10:00
那同学说,哎,你这是怎么搞的呀?这个内部病和外边有什么区别吗?大家看哈,这个内部病的话,我是不是没写那个ID啊,你觉得你写ID的话也没啥用是吧。解一个ID,比方说我解个卡三。其实你写了也没用,不是在我们这个内部这么的一个bin,这个bin是不能够被外部引用的,清楚吧,啊,内部B不能够被外部bin也能不能。外部。引用说什么只能在内部使用,这就叫就叫做内部。那其他的这个方式的话呢,跟我们这个其实都是一样,道理是一样的是吧,这个只不过是引用前面已经声明好的一个病,而这个的话呢,是使用了一个我内部自己定义的一个病。称之为内部病。
11:01
OK。我们这个引用属性的这个装配的话呢,我们这块我们用的是property,大家说用构造器的话,这个道理是不是一样呀。也是用呃这样的方式来写,我来举一个例子吧。构造器person里边。我先写个午餐呢。不再写一个代餐的看一下。带参数的构造器。找一个。这一个哈。一个person to。Ad。Class。第一个value这个值呢,叫D。Contract us。值呢,25。Contrast a。
12:00
Reference,我指向car就可以了。获取一下看看效果。改成。好一个。对吧,AI25奥迪吗。啊,下面我们来看这个闹值和极点属性。我们可以使用专有的这个钠元素为B的。字符串或其他引用类型来附一个闹值,但这个意义呀,不大,为什么呀?因为我本身我这个引用类型,我默认值是不就是闹啊,你不付不就可以了吗?但你也确实是可以付一下,比方说这个。Car吧。我附一个闹纸来看,这是闹纸。测试不值。
13:02
这个呢,先注点。注意看啊。Now。可以了,这负,这是倒值的专有标记。找一个。是闹吧,对吧,就是这样的一个效果,就是闹的专有标记,必须这么写。再来。还有一个。像spas跟hale一样,Spring支持。级联属性的配置好了,级联属性意味着什么呀?意味着我可以直接在这个里边。
14:02
为我们的这个什么呢?为card brand COP price跟max speed赋值。看一下这个几点属性啊,如何来付。On PU a。先写着啊。嗯,解成。我们还指向这个car。然后呢?这个效果跟先前是一样的,找一个。嗯,奥迪那个车。这么来?Property,我们指定一个点,这个car差了一个什么呀?差了一个price。Y6值,我写为30万。哦。有没过来呀?
15:00
我这样写的话得怎么办呢?我这样写的话,你这个看里面得有一个set方法吧。看里边貌似没有赛的方法。我写一个来在。下一首。看到了吧。没问题哦,这个max b的这个值负的不对呀。看一看哈。3000哦,这个卡第一个卡我在赋值的时候,我的确是只付了一个什么呀,我只付了一个price,那我这个应该付给谁呀。付给那个max speed,这才是全的是吧?Max speed,当然这个里边你得写一个sa。这个值不能这么。不能这么强是吧,嗯,250公里。有一个。
16:01
看到了吧,A几点属性复制。为级联属性。不止。账户就可以。点属性。那这个里边的话呢,我们看到了,我是不是先为这个卡的值啊,然后再附的这个基点属性是吧。大家说。我如果要是不为这个car赋值。那这个时候它会自动的创建那个卡对象,然后完了给那个几点属性把值附上吗?懂我这个意思吗。就是说。现在呢啊,我不为这个卡赋值了,我不为这个car赋值,在我这个里边,我可以怎么写呢。这里边写不了是吧,因为这里边儿我这个构造器就是呃,Name age,还有car,我们在前一个里边写。这个里边。
17:02
再往上。啊,就是这个person。这个赋值的话呢,暂时我不付了。模糊了。为什么呢?我直接来为他的。Max。Speed减一个值。Y660。啊,这样的方式能把这个值附上吗?什么意思呢?就是说我这个时候啊,我这个car是不是还是个no啊,我们在strong to里面是可以这样付的,Strong to框架会自动的为这个car创建一个对象,然后把这个值付给他是吧。看一下效果呗,走一个。看不行吧,出了一个异常是吧,他说。呃,这是一个不合法的属性。因为这个属性值是空,这样不行,你把这个打开的话就没问题。
18:03
你看。又没问题了。好吧,这是我们这块需要注意的一点,二百六令在哪呀?二百六那个person。这个是person哦,这个person没有打印哈。我打他能看到person。哦。没问题,所以说的话呢,这块这个赋值有一个需要注意的地方。留着写吧。说。注意。属性需要先。初始化。后还可以为。吉莲树径。不值啊,否则。
19:03
有一场。和。Stra two。抓的话呢,它会自动的帮我创建那个地点属性,然后把这个值附上。这个不行,这是需要我们注意的一个地方。当然了,这里边儿我们要说明哈,我们很多时候的话呢,我们是用不着这个,呃,为极点属性赋值看到了吧。OK。继续。下面我们来看一个叫。集合属性。拿过来。我们来看我们的person。我这个person啊,我这一个人的话呢,是不是可以有好几辆车呀,是吧,我现在的话呢,我是只有一辆车,如果要是好几辆车的话,我们如何来配置呢。
20:00
那我这个的话呢,我不改,我这来创建一个啊叫集合属性。R。Action。我把这个还有这个CTRLC复制过来。等一下好的。这两个是没有被配置的是吧,已经配到LC容器里边的话呢,上面有个小S。好,我来改一下。这样写。这个例子不对吧?是不是你A?WD的。Her。解帐对应的盖在的方法。
21:02
都重写吧,好吧。解,一个护士准。搞定好了,对一下。各是一合属性。测试如何配置集合属性。B。AD。Class,大家看两个了吧,里边这个。这个的话呢,我叫PERSON3。Property。Name Mike。再来property。Age。Y27。
22:01
下一个property。叫什么?Part是一个。集合类型怎么搞?它是一个集合类型,先写着吧,很显然你直接这样写是不行的,因为我在外边的话呢,没有定义一个集合,我先把这个集合搞到里边哈。里边要有一个集合的话,我们看。是不是有一个历史的呀。我这意思嘛,是吧,然后呢,我一个一个的reference哎。B,我指向的是car。一个cartoon吧。看三吧,走。方法测试一下三。哦,这个不行是吧,这个类型不对。没方法,干脆。这里边儿的话呢,我再写一个B方法吧。
23:00
Man。Context。I believe。Asian context。等于new class contact。John。context.xl。找一个person。这里的哈person等于Ctx.person。一下person。走起。哎哟。没有一个B叫CAR3。回来。
24:00
Oh。有一个什么问题啊,我前面定义这个卡是不都是。这个包里边儿的,现在这个包里边的是吧。那。就是说我前面定义这个CAR1大瞧瞧哈,是in子这个包是这个包里边的,而我这个里边这个car呢,是他。怎么办呢?干脆把这个去掉吧,好吧。哎,我就用那个包里边儿的CTRL不哦。OK,这个时候再走。还有错误啊。说没有一个B就是CAR3 OK。没有一个病叫CAR3。哦,大家看我这个卡三是不在里边啊,内部币也用不了嘛,是吧。那就不引用了吧。
25:02
按掉。再来。哎,这个结果是OK的。Cars奥迪。后边这个是,呃,宝马。没问题,看到了吧,嗯,这就是我们为集合属性复制这块的话呢,我使用的是list。使用list节点为。List类型的。属性不止。里边我们可以通过一组内置的X标签,比方说list set map来配置集合属性。那配置的方式呢,就是list这样的一个呃节点,然后这里边我们可以写value,还可以写reference,还可以用bin来定义内部B。
26:00
定义内部病的这个效果呢,跟这个效果是一样的,我来复制一下吧。我control。C复制过来看看啊。我借一个。往后。一个务必是不需要ID的是吧。找一个。是不是还有一个长安福特呀,OK,没问题。数组定义呢,跟这个list一样,Set定义呢,跟这个list几乎也一样,所以说这个数组跟set咱就不说了哈。你看这个map,这个map吧,多少要特殊一点。因为这个map里边是不是有一个键值,对啊是吧,所以说的话呢,这个map我们这我们可以指定entry,然后的话呢,我们需要指定key和。Value。来试一下map。
27:02
为了试这个map的话呢,我把这个person创建一个。这个呢,我们叫person to吧。A new,亲人。这个新人呢,这个我给他写为。Map类型理论的。Car。来吧。爱的方法。那我们如何来配置new person的这个什么呀?New person的这个。APP。看不属性值来。配置map属性值。B。
28:00
ID。Class new person。Property。Name。Value。Property。Age。百28。最主要的就是这个property叫什么呢?叫car,是一个外部类型。如何来搞?Map类型,他觉得啊,确实是有一个map是吧,那个绿词就是map呗。里边放什么呢?里边我们放的是。N直接就K和拍六是吧,你K值,比方说指向的是AA第一辆车。Value reference指向这个car,好吧。
29:00
这个的话呢,叫。AB可以指向这个大柱可以了。再看效果。这个叫new version。等于CDx.B。里边是new。Person。来out new一个。I can。New person。重写to string方法了吗?怕重写了。那为什么没有打印呢,Mac?Car。没方法再看一下哈。Oh。我应该走这个是吧,刚才这个。
30:01
密方法这里面写的拿过来。CTRLX。两个密方法吗?搞错了,这个里面。这种。看到了吧。AA嘛,是吧,过来。BB这样写是没问题的,那我去配什么内部B呢?哎,这个道理是一样的,包括我们使用构造器进行配置,这这个的话呢,大家参照前面的配置,很容易可以搞定是吧,我们就不再说了,就是我们在这里边来搞定这个map。Map来。你说只用。Map节点。节点及。Map的entry子节点位置。怎么样?
31:04
类型的纯面料。这么配是吧?OK。这里边儿的话呢,我们还要说一下跟map对应的是不是还有一个properties。诶,这个配置呢,用的还比较多,我们在后边比方说我们去整合,呃,Happiness的时候呢,我们就需要用到这个,呃,Properties这个的话呢,我们也需要来演示一下。我这个properties实际上是什么东西啊,它实际上是map的一个子类吧。看一下。找到这个properties。过来。Opera。大家看是一个类是吧?Properties实际上是哈希table的一个子类是吧?
32:04
那哈呢。哈呢,它实际上是map的一个实现类,Map的话是一个接口呗,是吧,所以说配置方式跟我们这个配置方式是比较像的。我们来搞一个这个。带properties,于是我们来写一个data source吧。AR。我们直接写一个就可以了哈,然后。For。Properties。赞盖的方法。兔子传。有什么意义吗?那我因为我们在连数据库的时候,我们知道我们需要用户名密码。呃,驱动程序还有那个,呃,GDP Co啊,我们就做这样的一个模拟哈,我们来为data source properties进行赋值,看如何来配来说配置。
33:14
属性值。找一个病。A。Class。Data source。Property。Property这个值呢,是property是看吧。然后一个一个的。D。比方说。Down。Award root。了是吧,配个1234吧。
34:01
这个的话呢,配一个。GDBCUL。为BC。买circle。配一个river clash。暗点买circle.abc点。搞定。我们这块只是一个模拟哈。测试一下,看看效果。没方法。搞到这个data。S等于CDx.get in。It sounds。点啦,不想转了哈。GA proper。找一个。看到了吧,这个配置是没问题的,诶我们就是使用。
35:04
这样的方式。来配置properties过来。使用。Pro。子节点。白喂。For the Dis。属性。不止。这样赋值就OK。行吧,这个的话呢,就OK了哈,下面的话呢,我们再来看一个。我们来看一个,我们如何把这个,嗯。集合的配置拿出来什么意思呢?这里边的话呢,我们配置了,比方说我们配置了map,前边的话呢,我们还配置了list,我们这个时候这个配置这个list也好,这个map也好,这块这个配置的这个properties也好,他们是不是都是一个内部的呀。是吧,就是说我并没有给它拿出来,比方说我现在的话呢,我还有一个B,那个B也需要来引用这样的一个集合,那怎么办,难道还需要再写一遍吗。
36:10
很明显这样不好是吧,所以说我们考虑如何把这个集合的配置给它拿出来呢?我就是说我们希望它也配置为一个B的方式。能配吗?肯定是。可以赔的。里边来。这个配置一下是吧,配置独立的。集合病好的吗?一共。多个。进行引用。搭配啊,我们需要引入一个新的空间,叫悠久。打开它。U9啊,这里边还没有U9,我们需要把有在这呢,是吧,这个是啊,看差了有它。OK。
37:00
把这个U配一下U,大家看u list。写个ID。Car。Us。来。喝一些很多的。这里边儿的话呢,是我独立来配一个品质吧,你也可以独立配,直接写个reference,指向的是R。这指向一个。那就可以了。说一下是吧,哎,需要导入。In。明空间。好的,这个写完之后的话呢,我们再来搞一个。Person。Bin。ID。最里边了哈。
38:02
这个呢,我们叫科四。Property。STEM。H29。这个叫。帕,OK,我终于可以。Prefer。等于等于谁呀。Car。看见了吧。测试一下。把这个呢改为PERSON4就可以了。走一个。第一个是啊,这个麦克这个就应该是。找一个。大家看这29吧,后边是一个集合,看到了吗?这就是我们可以把这个并给它。
39:01
独立出来看见了吧,哎,使用这个U把这个B独立出来就可以。那PPT这块的话呢,也有说明是吧,啊不能。呃,我们以前的方式的话呢,是把这个bin定义在里边了,我们那没有可能被其他的bin所共享,我们可以导入u to这个STEM,然后的话呢,单独来配置bin,这样的bin呢,就可以被多个bin所共享了,是吧,比方说我们前边的这个集合找一下。这个是吧,嗯,这个你就可以不这样写了,但是你这个是这这个是例外的是吧,你可以直接这样写一个。啊,这是可以的,这个时候的话呢,这个car跟car two就有了,但这个in的话呢,是没有,因为我们这边没配对吧。没有配置这样的话呢,我们这块配置的这个集合呀,就可以被。呃,多个其他的病所共享所引用。
40:04
好的。再看一点。使用这个P命名空间。我们在这个42.5里边的话呢,引用了一个新的命名空间叫P,引用这个P以后呢,我们可以在。配置这个B元素的时候啊,来通过比较简化的方式来配置这个bin的属性。调一下吧,说。通话。P命名空兼备B的属性不值,我得先找进来这个P呀。来。啊说哎,需要先。导入P命名。空间来吧。In,写个ID。
41:02
ABAT。来。这个的话呢,我搞成是一个。二五好了,正常配置的话呢,像我们先前这样配是吧,这样配,现在我不这样配了T。大家看TH好吧,写成30。D。不能都是age啊。第一。Name有呗。会。再来第一,还有什么呀?Happy什么属性啊?它指向的是。A5。
42:00
配方法来一下。30困。有一个。看到了吧,QUEEN30后边的还是这个集合。拿过来。我们感觉到这种配置方式是不是比这个配置方式要简洁一些,是吧,相对于传统的,相对于。传统。的配置方式更加的便捷。OK,以上的话呢,就是我们讲的这个并配置,并属性配置的一些细节。大家可以来参考我的这个PPT,跟我这个代码的话呢,把刚才这个任务也来完成一下。
我来说两句