1. 程式人生 > >Spring之Ioc詳解01

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);
}


}