Spring之Ioc詳解01
Spring Ioc(Inversion of Control):
注入方式:1.屬性注入
<bean id="people2" class="com.tyd.entity.People">
<property name="id" value="1" />
<property name="name" value="張三" />
<property name="age" value="12" />
</bean>
2.構造方法注入
1)按型別
<bean id="people3" class="com.tyd.entity.People">
<constructor-arg type="int" value="2" />
<constructor-arg type="String" value="李四" />
<constructor-arg type="int" value="14" />
</bean>
2) 按索引
<bean id="people4" class="com.tyd.entity.People">
<constructor-arg index="0" value="3" />
<constructor-arg index="1" value="王五" />
<constructor-arg index="2" value="15" />
</bean>
3.工廠方法注入
工廠類:
public class PeopleFactory {
public People createPeople() {
People p = new People();
p.setId(6);
p.setName("趙六");
p.setAge(16);
return p;
}
}
注入:
<!-- 工廠bean -->
<bean id="peopleFactory" class="com.tyd.factory.PeopleFactory" />
<bean id="people6" factory-bean="peopleFactory" factory-method="createPeople"></bean>
測試類:
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
// 未注入屬性
People p1 = (People) ac.getBean("people1");
System.out.println(p1);
// 屬性注入
People p2 = (People) ac.getBean("people2");
System.out.println(p2);
// 構造方法注入(型別)
People p3 = (People) ac.getBean("people3");
System.out.println(p3);
// 構造方法注入(索引)
People p4 = (People) ac.getBean("people4");
System.out.println(p4);
// 工廠方法注入
People p6 = (People) ac.getBean("people6");
System.out.println(p6);
}
}