Spring学习笔记(二):bean属性配置

一、bean属性注入的方法:

Car类:


1、setter方法注入:

使用<property>标签进行类属性的设置,且这些进行设置的属性必须有setter方法,其中name属性值为对应类中的属性, value属性用来设置相应属性的属性值

要使用setter方法注入属性,要求类必须只有无参构造器,否则会异常


输出展示:



2、构造器依赖注入:

使用<constructor-arg>标签进行类属性的设置,按照构造器传入值属性顺序注入,当然也可以用标签中的index属性来指定设定的属性,index从0开始算起,type属性用来指定设置的属性的属性类型,value属性用来设置相应属性的属性值

使用构造器依赖注入,类中必须有有参构造器


输出结果:



二、引用其他bean

1、组成应用程序的bean经常需要互相协作以完成应用程序功能,要使bean能够相互访问,就必须在bean配置文件中指定对bean的引用。

Car类


Person类


在bean配置文件中,可以通过<ref>元素或ref属性为bean的属性或构造器参数指定对bean的引用。


输出结果:


2、除了用ref来引用外部定义的bean,我们还可以使用内部bean来达到引用其他bean的目的。

内部bean:当bean实例仅仅给特定的属性使用时,可以将其声明为内部bean。内部bean声明直接包含在<property>或<constructor-arg>元素里,不需要设置任何id或name属性。内部bean不能使用在任何地方。


三、集合属性的设置:

在Spring中可以通过一组内置xml标签(例:<list>,<set>,<map>)来配置集合属性。

1、配置java.util.List类型属性,需要指定<list>标签,在标签内包含一些元素,用<value>指定简单的常量值,用<ref>指定对其他bean的引用,用<bean>内部bean。

2、数组定义和List一样,都使用<list>标签

3、配置java.util.Set使用<set>标签,定义元素方法和List一样


下面是设置List集合属性的例子:

Person类:


bean配置:


输出结果:


4、java.util.Map通过<map>标签定义,包含多个子标签<entry>,每个子标签中包含一个键一个值,<key>包含map的键,而map的值可以为<value><ref><bean><null>元素。也可以将map的键和值作为<entry>标签的属性进行设置,简单常量用key和value属性,bean引用使用key-ref和value-ref属性。


Person类:


bean属性配置:


输出结果:


5、java.util.Properties通过<props>标签定义,包含多个<prop>子标签,每个<prop>子标签必须定义key属性

6、使用utility scheme定义集合:

在使用普通方法定义集合时,不能将集合作为独立的bean定义,导致其他bean不能引用该集合,无法在bean之间共享集合。

但当我们用utility scheme里的集合标签可以定义独立的集合bean,这些独立集合bean必须包含在<beans>根元素内。

定义单例的集合bean需要引入util命名空间,例如单例Map集合bean为:<util:map></util:map>,为标签设置唯一的id属性值,其他bean可以通过他的id对单例集合bean进行引用


四、使用p命名空间配置属性

导入了p命名空间后,可以通过<bean>元素属性配置bean的属性

格式:p:属性名="属性值"   若属性值为其他的bean,则属性名后加-ref,即:p:属性名-ref="属性值" 



关注公众号,和我一起学习





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值