xml property标签注入一个类变量_《2天学会spring框架教程》第四章XML装配笔记

1.在spring早期,是用哪种方式?

xml配置。早期的时候spring和xml是同义词,所以被很多人诟病。

2.现在还为什么需要学习xml配置方式?

因为有很多老项目需要你维护啊。

3.配置xml被人诟病的原因?

一是有很多不必要的学习成本,比如xmlns规定了beans里边可以出现哪些节点元素这种繁琐的知识。

v2-bda9d0a68060f8cf83ac629fc64084bb_b.jpg

而是配置bean的时候不像注解只需要一个表识就可以了,还需要写类本身的很多信息。

4.xml如何定义一个bean?

相当于javaConfig的@Bean。

最简单的方式,这个时候没有写bean id,默认的bean id就是其完整类名。

v2-5091f0f8c9df3e4c57a3c4fd2f349f03_b.jpg

添加bean id:

v2-0c2aff51f70d7fccf092619443eb7ec7_b.jpg

getBean的时候使用bean id:

v2-a465fbfc0d51719f6eeb9d897240b8af_b.jpg

或者用autowired来关联bean,变量名和bean id对应上就自动注入了:

v2-8d41765338e23fa7ca2eab84bd03a821_b.jpg

或者可以用@Qualifier指定bean id:

v2-bd7e26146ce9ae5faebb4e189ec53844_b.jpg

5.name属性和id属性有什么不一样?

id是唯一标识,name是名称(类比于人的化就是id是身份证号,name是你的名字,或小名)。

name可以有多个,name属性有空格/逗号分隔的时候,每个部分都是一个别名:

v2-ee6cb2c70927fdecde21f1d7fa1b80f3_b.jpg

id是只能有一个的,没法分隔出来多个的。

6.构造函数依赖注入如何配置?

v2-c94ff5b65d09c19cee57e982f3886450_b.jpg

constructor-arg构造函数依赖注入:

v2-cb53586eccde653960a3bf63809c3bce_b.jpg

c名称空间:

c:cd-ref="compctDisc2",c:表示c名称空间,cd表示构造函数的参数名,-ref表示注入的是另外一个bean的引用。

v2-7b2f1296157c7cca926dc676ccccc625_b.jpg

除了用构造函数的参数名,还可以用参数位置,_0表示第一个参数:

v2-b5f1d22a026bf395a5276245d8e3a56f_b.jpg

7.简单类型如何装配?

上边讲的都是对象引用的装配,那我们怎么装配简单类型呢?

name指定了参数的名字:

v2-07d6ef151587c52edd0b7aa45804b021_b.jpg

也可以用index指定了参数的位置:

v2-cdcc82d7516dfa595fc1ff1f49a0c90f_b.jpg

也可以用c名字空间:

v2-7600ad90d0dea95c0ba7dfce58b372e8_b.jpg

8.如何注入list类型?

简单类型:

v2-356981702c0ad2037e920e6687d5e3c2_b.jpg

对象引用:

v2-59560484fff6aaa26aa61a4ba48d58be_b.jpg

9.如何注入set类型?

v2-2d66c885f5cc056e18104eab72465ad7_b.jpg

10.如何注入map类型?

简单类型:

v2-0f6e972e03529f2742aeb7b585750175_b.jpg

对象引用:

v2-2b48dffaae58e8a0de84aadc71e414a8_b.jpg

11.如何注入数组类型?

v2-0a79ec6700af7787790890257b73c180_b.jpg

12.上面讲的都是构造函数注入,那么怎么做属性注入?

简单类型:

v2-f6a70efa8c5eca30d0bb937fb6d58ebd_b.jpg

数组:

v2-e6027bb91586afc94f8b3acf6154b9ff_b.jpg

spring还提供了更为简洁的p名称空间(c代表constructor, p代表property),来简化属性注入。

v2-5f5a5a079ae5b4600f2ef6fa497b7bc8_b.jpg

但是p空间不支持数组或集合的属性注入。

13.util名称空间?

p空间不支持数组或集合的属性注入,可以用util空间来解决。

先启用:

v2-6102acacdb74e1fed2301379ff9421b1_b.jpg

使用:

v2-04cfeb944825a8494e2a6b169aa5f9f8_b.jpg

14.总结

v2-cd07d6223db8cbed2f461836f50433bb_b.jpg

v2-b07e5d3e3a83406c319ebe4e6692bf7c_b.jpg

v2-5330ce3d9e1c7a514714e122d7e1cd44_b.jpg

v2-fcc05600fecb4271431198c17ac4710f_b.jpg

v2-646f2ef72e7d2ac0488dc154c768fb93_b.jpg

三种装配方式可以混合使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值