Spring_1_Bean的實例化實例

1)PersonService類:

 public interface PersonService {

	public abstract void save();

 }

2)PersonSeBean類(繼承了PersonService類):

public class PersonServiceBean implements PersonService {

	@Override
	public void save() {
		System.out.println("This is a save() method");
	}
}

3) PersonServiceBeanFactory類:

/**
 * 用來實例化Bean的工廠類(靜態和非靜態方法)
 */
public class PersonServiceBeanFactory {
	// 靜態工廠方法
	public static PersonServiceBean createPersonServiceBean2() {
		return new PersonServiceBean();
	}

	// 非靜態工廠方法
	public  PersonServiceBean createPersonServiceBean3() {
		return new PersonServiceBean();
	}
}

4)Bean的XML配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!-- 使用類構造器實例化Bean 推薦使用 -->
	<bean id="personService1" class="spring.PersonServiceBean"></bean>

	<!-- 使用靜態工廠類實例化Bean 不推薦使用 -->
	<bean id="personService2" class="spring.PersonServiceBeanFactory"
		factory-method="createPersonServiceBean2"></bean>

	<!-- 使用非非態工廠類實例化Bean 不推薦使用 -->
	<bean id="personServiceBeanFactory" 			
class="spring.PersonServiceBeanFactory"></bean>
	<bean id="personService3" 		
factory-bean="personServiceBeanFactory"
				factory-method="createPersonServiceBean3"></bean>
</beans>

5)springTest 類:

public class springTest {
	@Test
	public void instanceSpring() {
//添加配置文件
		ApplicationContext ctx = new 			
ClassPathXmlApplicationContext("spring/beans.xml");

		// 使用類構造器實例化Bean
		// PersonService personService1= (PersonService) 												ctx.getBean("personService1");
		// personService1.save();

		// 使用靜態工廠類實例化Bean
		// PersonService personService2= (PersonService) 
ctx.getBean("personService2");
		// personService2.save();

		// 使用非工廠類實例化Bean
		 PersonService personService3= (PersonService) 			
ctx.getBean("personService3");
		 personService3.save();
	}
}











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章