<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [轉]Spring中工廠模式簡介

      工廠模式作用:
      核心思想:實例化對象
      需求:
      1.多例對象的創建
      2.有些對象 例如接口/抽象類不能直接實例化 接口–代理 抽象類–創建子類
      3.需要對對象進行二次封裝
      靜態工廠:
      說明: 靜態工廠必須有靜態方法。
      調用方式:類名.靜態方法
      例:
      (1)建立工廠類

      package com.jt.manage.factory;
      
      import java.util.Calendar;
      
      public class StaticFactory {
          public static Calendar getInstance(){
              return Calendar.getInstance();
          }
      }

       

       

       

      (2)交給Spring管理
      配置xml文件

      <!--配置靜態工廠  -->
      <bean id="calendarA" class="com.jt.manage.factory.StaticFactory" factory-method="getInstance" />

       

       

       

      靜態工廠可以通過類名.靜態方法的形式獲取對象,因此只需要將靜態工廠對象交給Spring管理,并提供靜態工廠方法即可。
      實例工廠:
      說明:實例化工廠要求必須先創建工廠對象,之后通過工廠方法調用獲取對象
      (1)建立工廠類

      package com.jt.manage.factory;
      
      import java.util.Calendar;
      
      public class InstanceFactory {
          public  Calendar getInstance(){
              return Calendar.getInstance();
          }
      }

       

       

      (2)交給Spring管理
      配置xml文件

      <!--配置實例化工廠  -->
          <bean id="instanceFactory" class="com.jt.manage.factory.InstanceFactory"></bean>
          <bean id="calendarB" class="com.jt.manage.factory.InstanceFactory" factory-bean="instanceFactory" factory-method="getInstance"></bean>

       

       

       

      實例工廠需要將工廠對象交給Spring管理,然后建立bean對象,將工廠對象和工廠對象的獲取對象方法交給其即可。
      Spring工廠:
      說明:該模式有spring內部調用,不需要做多余的配置但是需要實現特定的接口FactoryBean。
      (1)建立工廠類

      public class CalendarFactory implements FactoryBean<Calendar> {
      
          @Override
          public Calendar getObject() throws Exception {
              // TODO Auto-generated method stub
              return Calendar.getInstance();
          }
      
          @Override
          public Class<?> getObjectType() {
              // TODO Auto-generated method stub
              return Calendar.class;
          }
      
          @Override
          public boolean isSingleton() {
              // TODO Auto-generated method stub
              return false;
          }

       

       

      (2)交給Spring管理

      <!--配置spring工廠  -->
      <bean id="calendarC" class="com.jt.manage.factory.CalendarFactory"></bean>

       

       

      FactoryBean接口需要實現三個方法并制定工廠管理的對象泛型。
      isSingleton()方法:用于指定對象是否為單例,單例對象由Spring創建、存儲并管理;多例對象Spring只負責創建,不負責銷毀。
      getObjectType() 方法:若對象為單例,則在Spring容器關閉時調用此方法,獲得該對象的class對象并通過class對象尋找所有該類對象進行刪除。
      getObject()方法:獲取對象。
      工具類測試:

        @Test
          public void testFactory(){
              //1.實例化Spring容器
              ApplicationContext context = 
                      new ClassPathXmlApplicationContext("spring/factory.xml");
              Calendar calendarA = (Calendar) context.getBean("calendarA");
              System.out.println(calendarA.getTime());
              
              Calendar calendarB = (Calendar) context.getBean("calendarB");
              System.out.println(calendarB.getTime());
              
              Calendar calendarC = (Calendar) context.getBean("calendarB");
              System.out.println(calendarC.getTime());
          }

       

      posted @ 2020-12-01 16:03  登風360  閱讀(406)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 江城| 日韩av在线不卡一区二区| 亚洲一区二区三区自拍天堂| 欧美人禽zozo动人物杂交| 熟女蜜臀av麻豆一区二区| 视频一区视频二区制服丝袜| 油尖旺区| 男人扒开添女人下部免费视频| 91精品乱码一区二区三区| 久久精品熟女亚洲av麻| 国产精品人妻中文字幕| 亚洲国产精品综合久久20| 欧美亚洲国产成人一区二区三区| 欧美颜射内射中出口爆在线| 色噜噜狠狠成人综合| 中文字幕亚洲资源网久久| 撕开奶罩揉吮奶头视频| 国产美女精品一区二区三区| 深夜视频国产在线观看| 贵定县| 久久理论片午夜琪琪电影网| 亚洲最大的熟女水蜜桃AV网站| 东京热人妻无码一区二区av| 九九综合va免费看| 乱码精品一区二区三区| 盘山县| 亚洲精品电影院| 亚洲福利精品一区二区三区| 国产在线午夜不卡精品影院| 国产一区二区精品久久呦| 国产精品亚洲一区二区三区喷水| 看全色黄大色黄大片 视频| 国产精品午夜福利在线观看| 久久精品免视看国产成人| 精品无码成人片一区二区| av无码小缝喷白浆在线观看| 国产成人无码AV大片大片在线观看| 狠狠色噜噜狠狠狠狠777米奇| 干老熟女干老穴干老女人| 一区二区三区av在线观看| 亚洲成人精品综合在线|