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);
}
}
注入方式: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);
}
}
相关文章推荐
- MyEclipse 设置注释
- MyEclipse 设置注释
- MyEclipse 设置注释
- Synchronized关键字--总结于《Java多线程编程核心技术》
- eclipse 很好用的高频快捷键
- javaEE之--------------session的活化与钝化
- [Java开发之路](10)DOM解析XML文档
- Java 动态写轮眼 SharinganJPanel (整理)
- java登陆注册界面参考的资料和代码
- Java 图片提取RGB数组 RGBOfCharMaps (整理)
- myeclipse的相关设置
- Java 直线、多段线画板 PaintJFrame (整理)
- Java 碰撞的球 MovingBall (整理)
- (java多线程并发)控制并发线程数的Semaphore
- Java RGB数组图像合成 ImageCombining (整理)
- 隐马尔可夫模型中基于比例因子的前向算法(java实现)
- 使用Spring的注解方式实现AOP
- maven仓库配置
- Java 动态眨眼 EyesJPanel (整理)
- 【Java】斐波那契数列前N项(堆栈算法)