简单属性赋值:
首先创建一个calss对象,写上我们需要的属性值,写上set方法
2.在xml文件里面创建bean标签,通过里面的property name value属性给目标类赋值。 name里写要赋值的属性名,value里写要赋的值。可在自己写的类里赋值,也可给java包里的已有的类赋值。bean标签下的赋值实质上是调用类里的set方法。
3.创建测试类,这里最重要的就是ApplicationContext这个类,它可以读取spring配置文件,并创建类。 并通过ApplicationContext.getbean()方法拿到
创建好的对象来使用它的方法。
引用类型赋值:
与简单类型不同,当我们想给引用类型赋值时,需要修改bean标签下的id属性,将其改为ref,里面的参数是引用类型名称,同时在下边创建引用类型的bean标签并赋值。赋值使用的仍是类中的set方法。
构造注入:spring调用类的有参构造方法,在创建对象的同时,在构造方法中给属性赋值。
1.在类中创建有参构造方法
2.在bean标签中使用constructor-arg属性。可以通过构造方法中的属性名字赋值,也可以通过构造方法中的属性位置赋值
<constructor-arg>标签属性:
name:表示构造方法的形参名
index:表示构造方法参数的位置,参数从左往右是0,1,2的顺序
value:构造方法的的参数类型是简单类型的,使用value
ref:构造方法的的参数类型是引用类型的,使用ref
引用类型的自动注入:
引用类型的自动注入,spring框架模板某些类型可以给引用类型赋值,不用你再给引用类型赋值
使用的规则常用的是byName,byType,
1.byName(按名称注入):java类中引用类型的属性名和spring中的配置文件id一样且数据类型是一致的,这样的容器中的bean,spring能够赋值给引用类型。在容器中查找和自己对象set后面的值对应的bean的id
语法:
<bean id="" class ="" autowire=“byName”>
简单属性赋值
</bean>
2.byType(按类型注入):java类中引用类型的数据类型和spring类型中(配置文件)的class属性是同源关系的,这样的bean能够赋值给引用类型注:同源就是一类的意思。
1.java类中的引用类型和bean的class是一样的
2.java类中的引用类型和bean的class值的父子类关系的
3.java类中的引用类型和bean的class值的接口和实现类关系
语法:
<bean id="" class ="" autowire=“byType”>
简单属性赋值
</bean>
下例中primarySchool与Student类中的school是父子类关系。由于子类与父类同源,于是bytype将子类的值赋值给父类