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

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

          2.使用靜態工廠方法實例化
          先建立一個工廠類PersonServiceBeanFactory

          package cn.itcast.service.impl;

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


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


          將SpringTest類中的getBean參數改為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();
              }

          }


          執行測試單元 觀察控制器


          說明了該靜態工廠實例化Bean成功!

          3. 使用實例工廠方法實例化
           在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參數改為personService3
          執行測試單元 觀察輸出


          說明這種方式也是可以對Bean進行實例化的!

          實例化Bean常用的三種方式如上,具體運用何種方式可以根據具體情況,不過大多數情況下使用的還是第一種!
          posted on 2009-05-08 15:11 特立獨行 閱讀(330) 評論(0)  編輯  收藏 所屬分類: Spring框架
          主站蜘蛛池模板: 永川市| 扶绥县| 庆城县| 会昌县| 阿坝| 凤山市| 清徐县| 龙陵县| 阿瓦提县| 上饶县| 沾化县| 屯昌县| 米林县| 拉萨市| 莫力| 新津县| 都匀市| 北海市| 进贤县| 乾安县| 专栏| 宁远县| 鱼台县| 永修县| 涞水县| 淮北市| 翁牛特旗| 阿克苏市| 建宁县| 思茅市| 鄂托克旗| 凯里市| 鸡泽县| 静安区| 鹤山市| 营山县| 永靖县| 木里| 平罗县| 宁强县| 靖边县|