隨筆-21  評論-29  文章-0  trackbacks-0

          在以前的實(shí)例中我們使用的是第一種方法
          今天我們用另外兩種方法來實(shí)例化Bean

          2.使用靜態(tài)工廠方法實(shí)例化
          先建立一個工廠類PersonServiceBeanFactory

          package cn.itcast.service.impl;

          public class PersonServiceBeanFactory {
              
          public static PersonServiceBean createPersonServiceBean()//該靜態(tài)工廠方法用來創(chuàng)建Bean對象
                  return new PersonServiceBean();
              }
              
          }


          如何配置呢?在beans.xml加入如下配置語句
          <bean id="personService2" class="cn.itcast.service.impl.PersonServiceBeanFactory"
                    factory-method="createPersonServiceBean"/>


          將SpringTest類中的getBean參數(shù)改為personService2,看是否能夠得到。
          package junit.test;

          import org.junit.BeforeClass;
          import org.junit.Test;
          import org.springframework.context.ApplicationContext;
          import org.springframework.context.support.ClassPathXmlApplicationContext;

          import cn.itcast.service.PersonService;

          public class SpringTest {

              @BeforeClass
              
          public static void setUpBeforeClass() throws Exception {
              }


              @Test 
          public void instanceSpring(){
                  ApplicationContext ctx 
          = new ClassPathXmlApplicationContext("beans.xml");
                  PersonService personService 
          = (PersonService)ctx.getBean("personService2");
                  personService.save();
              }

          }


          執(zhí)行測試單元 觀察控制器


          說明了該靜態(tài)工廠實(shí)例化Bean成功!

          3. 使用實(shí)例工廠方法實(shí)例化
           在PersonServiceBeanFactory中新建
          插入以下代碼
          public PersonServiceBean createPersonServiceBean2(){
                  
          return new PersonServiceBean();
              }

          在beans.xml中插入以下代碼
           <bean id="personServiceFactory"  class="cn.itcast.service.impl.PersonServiceBeanFactory"/>
           <bean id="personService3"  factory-bean="personServiceFactory"  factory-method="createPersonServiceBean2"/>


          將測試單元SpringTest中的getBean參數(shù)改為personService3
          執(zhí)行測試單元 觀察輸出


          說明這種方式也是可以對Bean進(jìn)行實(shí)例化的!

          實(shí)例化Bean常用的三種方式如上,具體運(yùn)用何種方式可以根據(jù)具體情況,不過大多數(shù)情況下使用的還是第一種!
          posted on 2009-05-08 15:11 特立獨(dú)行 閱讀(324) 評論(0)  編輯  收藏 所屬分類: Spring框架
          主站蜘蛛池模板: 会东县| 江都市| 高唐县| 吴江市| 会昌县| 汶川县| 岳池县| 元朗区| 策勒县| 兰州市| 象州县| 林甸县| 山阳县| 巫山县| 饶河县| 钦州市| 通榆县| 永州市| 宿迁市| 商城县| 绿春县| 即墨市| 蓝山县| 民乐县| 鹿泉市| 黑河市| 普陀区| 巢湖市| 井冈山市| 沙坪坝区| 铜梁县| 焦作市| 宜昌市| 怀宁县| 大余县| 奇台县| 阿图什市| 九寨沟县| 孝昌县| 交城县| 江津市|