一.IOC容器--spring
是spring核心內(nèi)容砸狞。
作用: 創(chuàng)建對象 和 處理對象的依賴關(guān)系
二.IOC容器創(chuàng)建對象:
創(chuàng)建對象, 有幾種方式:
1) 調(diào)用無參數(shù)構(gòu)造器
2) 帶參數(shù)構(gòu)造器
3) 工廠創(chuàng)建對象
- 工廠類萎河,靜態(tài)方法創(chuàng)建對象
- 工廠類锥腻,非靜態(tài)方法創(chuàng)建對象
.
1) 調(diào)用無參數(shù)構(gòu)造器
配置文件(默認是無參的)
<!--創(chuàng)建無參構(gòu)造器-->
<bean id="user" class="com.huan.Bean.User" ></bean>
創(chuàng)建user對象
@Test
public void test1(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
User user = (User) applicationContext.getBean("user");
System.out.println(user);
}
2) 調(diào)用有參數(shù)構(gòu)造器
配置文件()
<!--創(chuàng)建有參構(gòu)造器-->
<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>
創(chuàng)建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) 工廠模式創(chuàng)建對象
工廠類:
package com.huan.factory;
import com.huan.Bean.User;
/**
* Created by 馬歡歡 on 2017/6/24.
*/
public class ObjectFactory {
// 實例方法創(chuàng)建對象
public User getInstance(){
return new User(200,"工廠:小李");
}
// 靜態(tài)方法創(chuàng)建對象
public static User getStatucInstance(){
return new User(300,"工廠:小黑");
}
}
實例方法
配置文件()
<!--3.工廠模式創(chuàng)建對象-->
<!--3.1工廠類:實例方法-->
<!--先創(chuàng)建工廠-->
<bean id="factory" class="com.huan.factory.ObjectFactory"></bean>
<!--在創(chuàng)建user對象售碳,用factory方法的實例-->
<bean id="user" factory-bean="factory" factory-method="getInstance"></bean>
創(chuàng)建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());
}
靜態(tài)方法
配置文件()
<!--3.2工廠類:靜態(tài)方法-->
<bean id="user" class="com.huan.factory.ObjectFactory" factory-method="getStatucInstance"></bean>
創(chuàng)建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創(chuàng)建細節(jié)