依赖注入(DI)
程序员文章站
2022-07-15 10:23:40
...
依赖注入(DI)
1.概念
-
依赖注入(Dependency Injection,DI)。
-
依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .
-
注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 .
2.set注入(重点)
要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is .
测试pojo类 :
address.java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Address {
private String address;
}
Student.java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private String name;
private Address address;
private String[] books;
private List<String> hobbys;
private Map<String,String> card;
private Set<String> games;
private String wife;
private Properties info;
}
2.1 常量注入
<bean id="student" class="com.ming03.pojo.Student">
<property name="name" value="小梦"/>
2.2 bean注入
<bean id="addr" class="com.kuang.pojo.Address">
<property name="address" value="重庆"/>
</bean>
<bean id="student" class="com.kuang.pojo.Student">
<property name="name" value="小明"/>
<--注意点:这里的值是一个引用,ref-->
<property name="address" ref="addr"/>
</bean>
2.2 数组注入
<property name="books">
<array>
<value>活着</value>
<value>兄弟</value>
<value>java开发</value>
</array>
</property>
2.3 List 注入
<property name="hobbys">
<list>
<value>听歌</value>
<value>看电影</value>
<value>爬山</value>
</list>
</property>
2.4 Map注入
<property name="card">
<map>
<entry key="中国邮政" value="555"/>
<entry key="中国移动" value="10086"/>
</map>
</property>
2.5 set注入
<property name="games">
<set>
<value>lol</value>
<value>吃鸡</value>
<value>王者荣耀</value>
</set>
</property>
2.6 Null注入
<property name="wife"><null/></property>
2.7 Properties注入
<property name="info">
<props>
<prop key="root">root</prop>
<prop key="password">123456</prop>
</props>
</property>
测试:
@Test
public void myText(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans03.xml");
Student student = (Student) context.getBean("student");
System.out.println(student);
}
上一篇: Spring p和c标签注入方式
下一篇: 【3】IOC创建对象的方式