一.IOC容器--spring
是spring核心内容。
作用: 创建对象 和 处理对象的依赖关系
二.IOC容器创建对象:
创建对象, 有几种方式:
1) 调用无参数构造器
2) 带参数构造器
3) 工厂创建对象
- 工厂类,静态方法创建对象
- 工厂类,非静态方法创建对象
.
1) 调用无参数构造器
配置文件(默认是无参的)
<!--创建无参构造器-->
<bean id="user" class="com.huan.Bean.User" ></bean>
创建user对象
@Test
public void test1(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user);
}
2) 调用有参数构造器
配置文件()
<!--创建有参构造器-->
<bean id="user" class="com.huan.Bean.User" >
<constructor-arg value="100" index="0" type="int"></constructor-arg>
<constructor-arg ref="str" index="1" type="java.lang.String"></constructor-arg>
</bean>
<bean id="str" class="java.lang.String">
<constructor-arg value="小明"></constructor-arg>
</bean>
创建user对象
@Test
public void test2(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user.getId()+""+user.getUsername());
}
3) 工厂模式创建对象
工厂类:
package com.huan.factory;
import com.huan.Bean.User;
/**
* Created by 马欢欢 on 2017/6/24.
*/
public class ObjectFactory {
// 实例方法创建对象
public User getInstance(){
return new User(200,"工厂:小李");
}
// 静态方法创建对象
public static User getStatucInstance(){
return new User(300,"工厂:小黑");
}
}
实例方法
配置文件()
<!--3.工厂模式创建对象-->
<!--3.1工厂类:实例方法-->
<!--先创建工厂-->
<bean id="factory" class="com.huan.factory.ObjectFactory"></bean>
<!--在创建user对象,用factory方法的实例-->
<bean id="user" factory-bean="factory" factory-method="getInstance"></bean>
创建user对象
@Test
public void test(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user.getId()+""+user.getUsername());
}
静态方法
配置文件()
<!--3.2工厂类:静态方法-->
<bean id="user" class="com.huan.factory.ObjectFactory" factory-method="getStatucInstance"></bean>
创建user对象
@Test
public void test(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user.getId()+""+user.getUsername());
}
上一篇:Spring--Bean创建细节