接下来详细总结一下Bean标签的使用:

spring bean设置属性 spring中配置bean的id属性_spring

这是一个简单的Bean配置,里面有一个 name属性:

name属性:表示对象名

spring bean设置属性 spring中配置bean的id属性_对象构建_02

也有人使用id属性,id属性也是表示对象名,那么id和name功能一样,她们有什么不同呢?

id属性:对象名不可重复,不能使用特殊字符。而name属性:可以使用特殊字符。

class属性:对象的完整类名(你要把类告诉spring,spring才能帮你创建出对象,就是这个意思了)

spring bean设置属性 spring中配置bean的id属性_属性注入_03

scope属性:有两个参数选择:

singleton:表示已单例的方式去创建对象(spring的默认选择)

prototype:每次问spring要对象,spring都会创建一个新的对象给你。

spring bean设置属性 spring中配置bean的id属性_spring_04

init-method属性:对象创建完成后,执行一个方法。

这里我给一个toString参数,让他执行一个toString方法。

这User类中重写toString方法,加上一句打印“我toString执行了”。

spring bean设置属性 spring中配置bean的id属性_spring_05

spring bean设置属性 spring中配置bean的id属性_赋值_06

对象创建之后,就会执行了 init-method属性中指定的方法。

-----------------------------------------

spring bean设置属性 spring中配置bean的id属性_spring_07

destroy-method属性:对象销毁前执行的方法。

我在User类中写一个aa方法,然后让她销毁对象,看会不会执行aa方法。

spring bean设置属性 spring中配置bean的id属性_spring bean设置属性_08

spring bean设置属性 spring中配置bean的id属性_对象构建_09

结果是,aa方法执行了。

-----------------------------------------

Bean对象的属性注入

对象能创建,当然就要为对象的属性赋值啦。

首先有通过构造方法注入属性值:

spring bean设置属性 spring中配置bean的id属性_spring_10

bean标签的内部标签中有constructor-arg标签

name属性:构造器参数名

value:赋值

ref:引用

type:参数类型

index:第几个参数

有了这几个属性就可以准确的选择到对应的构造方法了。

-----------------------------------------

通过set方法对属性注入:

bean标签的内部标签中有property标签。

property有三个属性:

name属性:对象的属性名

value属性:赋值

ref属性:引用

例如:我配置的一个user对象,给属性name赋值“小明”,age属性赋值“18”,phone属性是一个对象类型的,所以我又配置了一个phone对象,然后引用到user的phone属性上。

spring bean设置属性 spring中配置bean的id属性_spring_11

测试:我只需获取user对象,spring就已经把phone对象注入到了user的phone属性中了。

spring bean设置属性 spring中配置bean的id属性_对象构建_12

-----------------------------------------

数组类型的赋值方式:

spring bean设置属性 spring中配置bean的id属性_属性注入_13

-----------------------------------------

List集合的赋值方式:

spring bean设置属性 spring中配置bean的id属性_赋值_14

-----------------------------------------

Map集合的赋值方式:

spring bean设置属性 spring中配置bean的id属性_spring bean设置属性_15

-----------------------------------------

properties的注入方式:

spring bean设置属性 spring中配置bean的id属性_属性注入_16