1. Spring 给对象的属性赋值的两种方式
1. 有参构造注入
1. 必须提供有参构造方法
@AllArgsConstructor public class Student { } |
2. applicationContext.xml配置
<!--通过有参构造方法给属性赋值,创建Student组件对象--> <bean id="stu" class="com.bdqn.pojo.Student"> <constructor-arg name="sno" value="1001"></constructor-arg> <constructor-arg name="name" value="小张"></constructor-arg> <constructor-arg name="age" value="18"></constructor-arg> </bean> index: 索引,索引号从0开始 type:类型 name:名称 value: 赋值:基本类型和基本类型的包装类以及String类型。 ref :值 需要引用另一个对象 |
2. 设值注入 (set方法赋值)
1. 必须提供set方法
@Data public class Student { } |
2. 配置文件中配置
<!--通过set注入给属性赋值,创建Student组件对象--> <bean id="stu2" class="com.bdqn.pojo.Student"> <property name="sno" value="1002"></property> <property name="name" value="翠花"></property> <property name="age" value="19"></property> </bean> |
2. 属性不同数据类型赋值的语法
1. 基本类型或String字符串类型
<!--基本类型或String类型赋值--> <property name="sno" value="1008"></property> <property name="name"> <value>老王</value> </property> |
2. 数组类型
<property name="nickNames"> <array> <value>王王</value> <value>老老</value> </array> </property> |
3. List 类型
<property name="nickNames"> |
4. Set 类型
<property name="nickNames"> |
5. Map 类型
<property name="girls"> <map> <entry key="1" value="村花"></entry> <entry key="2" value="翠花"></entry> </map> </property> |
6. Properties类型 ,属性配置类型
<property name="properties"> <props> <prop key="qq">138389438</prop> <prop key="pwd">520209420</prop> </props> </property> |
3. DI
DI: 依赖注入(Dependency Injection),IOC和DI完全一样。 在一个类对象(service)中需要依赖于另一个类对象(dao), 将另一个类对象(dao)注入给对象(service)的过程,称为依赖注入。 |
示例:
<bean id="stu3" class="com.bdqn.pojo.Student"> <!--将年级对象注入给学生对象的年级属性--> <property name="grade" ref="grade"></property> </bean> <!--创建年级对象组件--> <bean id="grade" class="com.bdqn.pojo.Grade"> <property name="id" value="1"></property> <property name="name" value="S3"></property> </bean> |
4. 查看Spring容器中管理所有对象
String[] names=ac.getBeanDefinitionNames(); for (String name : names) { System.out.println(name); } |