spring建立物件的方式(3種)
阿新 • • 發佈:2019-02-03
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();
}