您的位置:首页 > 编程语言 > Java开发

Spring之Ioc详解01

2016-01-02 16:51 344 查看
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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: