1. 程式人生 > >spring建立物件的方式(3種)

spring建立物件的方式(3種)

1.使用預設構造方法建立物件

public class HelloWorld {
	public void hello(){
		System.out.println("hello world");
}

applicationContext.xml

<!-- 將一個類放進spring容器中  id值得唯一的-->
<bean id="helloWorld" class="com.mo.entity.HelloWorld"> </bean>

測試方法

@Test
public void testHello(){
	//載入配置檔案,啟動spring容器
	ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	//呼叫getbean方法,spring自動幫你建立一個物件返回
	HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld");
	helloWorld.hello();
}

2.利用靜態工廠模式建立物件

public class HelloFactory {
	//靜態工廠模式
	public static HelloWorld getInstance(){
		//但是建立物件的程式碼還是由程式設計師來寫
		return new HelloWorld();
	}
}

applicationContext.xml
<!-- factory-method指的是靜態工廠方法 -->
<bean id="helloFactory" class="com.mo.method.factory.HelloFactory" factory-method="getInstance"></bean>

測試類
/**
 * 利用靜態工廠模式建立物件
 * 在spring容器的內部呼叫了HelloFactory.getInstance()方法建立了物件,具體的new物件的過程是由程式設計師完成的
 */
@Test
public void testCreateObject_StaticFactory(){
	//載入配置檔案,啟動spring容器
	ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	//呼叫getbean方法,spring自動幫你建立一個物件返回
	HelloWorld helloWorld = (HelloWorld)context.getBean("helloFactory");
	helloWorld.hello();
}


3.利用例項工廠模式建立物件

public class HelloFactory2 {
	//例項工廠模式
	public  HelloWorld getInstance(){
		return new HelloWorld();
	}
}
applicationContext.xml
<bean id="helloFactory2" class="com.mo.method.factory.HelloFactory2"></bean>
  
<!-- 例項工廠模式,factory-bean指向一個id為helloFactory2的bean,factory-method是其方法-->
<bean id="InstaceFactory" factory-bean="helloFactory2" factory-method="getInstance"></bean>


測試
/**
 * 利用例項模式建立物件
 */
@Test
public void testCreateObject_InstaceFactory(){
	//載入配置檔案,啟動spring容器
	ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	//呼叫getbean方法,spring自動幫你建立一個物件返回
	HelloWorld helloWorld = (HelloWorld)context.getBean("InstaceFactory");
	helloWorld.hello();
}