一.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());
}
image.png
靜態方法
配置文件()
<!--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創建細節