最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring實戰(zhàn)之調(diào)用實例工廠方法創(chuàng)建Bean操作示例

 更新時間:2019年11月21日 11:29:01   作者:cakincqm  
這篇文章主要介紹了Spring實戰(zhàn)之調(diào)用實例工廠方法創(chuàng)建Bean操作,結(jié)合實例形式分析了實例工廠方法創(chuàng)建Bean相關(guān)配置、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下

本文實例講述了Spring實戰(zhàn)之調(diào)用實例工廠方法創(chuàng)建Bean操作。分享給大家供大家參考,具體如下:

一 配置

<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.springframework.org/schema/beans"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
   <!-- 配置工廠Bean,該Bean負(fù)責(zé)產(chǎn)生其他Bean實例 -->
   <bean id="personFactory" class="org.crazyit.app.factory.PersonFactory"/>
   <!-- 下面配置驅(qū)動Spring調(diào)用personFactory Bean的getPerson()方法來創(chuàng)建Bean
   該bean元素包含的constructor-arg元素用于為工廠方法指定參數(shù),
   因此這段配置會驅(qū)動Spring以反射方式來執(zhí)行如下代碼:
   PersonFactory pf = container.get("personFactory"); // container代表Spring容器
   chinese = pf.getPerson("chin"); -->
   <bean id="chinese" factory-bean="personFactory"
      factory-method="getPerson">
      <!-- 配置實例工廠方法的參數(shù) -->
      <constructor-arg value="chin"/>
   </bean>
   <!-- 下面配置會驅(qū)動Spring以反射方式來執(zhí)行如下代碼:
   PersonFactory pf = container.get("personFactory"); // container代表Spring容器
   american = pf.getPerson("ame"); -->
   <bean id="american" factory-bean="personFactory"
      factory-method="getPerson">
      <constructor-arg value="ame"/>
   </bean>
</beans>

二 接口

Person

package org.crazyit.app.service;
public interface Person
{
   // 定義一個打招呼的方法
   public String sayHello(String name);
   // 定義一個告別的方法
   public String sayGoodBye(String name);
}

三 實現(xiàn)類

American

public class American implements Person
{
   // 實現(xiàn)Person接口必須實現(xiàn)如下兩個方法
   public String sayHello(String name)
   {
      return name + ",Hello!";
   }
   public String sayGoodBye(String name)
   {
      return name + ",Good Bye!";
   }
}

Chinese

package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class Chinese implements Person
{
   // 實現(xiàn)Person接口必須實現(xiàn)如下兩個方法
   public String sayHello(String name)
   {
      return name + ",您好";
   }
   public String sayGoodBye(String name)
   {
      return name + ",下次再見";
   }
}

四 工廠類

package org.crazyit.app.factory;
import org.crazyit.app.service.*;
import org.crazyit.app.service.impl.*;
public class PersonFactory
{
  // 獲得Person實例的實例工廠方法
  // ethnic參數(shù)決定返回哪個Person實現(xiàn)類的實例
  public Person getPerson(String ethnic)
  {
    if (ethnic.equalsIgnoreCase("chin"))
    {
      return new Chinese();
    }
    else
    {
      return new American();
    }
  }
}

五 測試類

package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.crazyit.app.service.*;
public class SpringTest
{
  public static void main(String[] args)
  {
    ApplicationContext ctx = new
      ClassPathXmlApplicationContext("beans.xml");
    Person p1 = ctx.getBean("chinese"
      , Person.class);
    System.out.println(p1.sayHello("Mary"));
    System.out.println(p1.sayGoodBye("Mary"));
    Person p2 = ctx.getBean("american"
      , Person.class);
    System.out.println(p2.sayHello("Jack"));
    System.out.println(p2.sayGoodBye("Jack"));
  }
}

六 測試

Mary,您好
Mary,下次再見
Jack,Hello!
Jack,Good Bye!

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Spring框架入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • Spring 自動裝配的二義性實例解析

    Spring 自動裝配的二義性實例解析

    這篇文章主要介紹了Spring 自動裝配的二義性實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • MyBatis-Plus中的邏輯刪除使用詳解

    MyBatis-Plus中的邏輯刪除使用詳解

    開發(fā)系統(tǒng)時,有時候在實現(xiàn)功能時,刪除操作需要實現(xiàn)邏輯刪除就是將數(shù)據(jù)標(biāo)記為刪除,而并非真的物理刪除(非DELETE操作),查詢時需要攜帶狀態(tài)條件,確保被標(biāo)記的數(shù)據(jù)不被查詢到。這樣做的目的就是避免數(shù)據(jù)被真正的刪除
    2022-12-12
  • java操作excel導(dǎo)入導(dǎo)出的3種方式

    java操作excel導(dǎo)入導(dǎo)出的3種方式

    項目需要,要實現(xiàn)一個導(dǎo)入導(dǎo)出excel的功能,于是任務(wù)驅(qū)動著我學(xué)習(xí)到了POI、easypoi和easyexcel這3個java操作Excel的工具,下面這篇文章主要給大家介紹了關(guān)于java操作excel導(dǎo)入導(dǎo)出的3種方式,需要的朋友可以參考下
    2023-05-05
  • oracle+mybatis-plus+springboot實現(xiàn)分頁查詢的實例

    oracle+mybatis-plus+springboot實現(xiàn)分頁查詢的實例

    本文主要介紹了oracle+mybatis-plus+springboot實現(xiàn)分頁查詢,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringBoot項目接入MQTT的詳細(xì)指南

    SpringBoot項目接入MQTT的詳細(xì)指南

    MQTT是一種輕量級的消息傳輸協(xié)議,特別適用于物聯(lián)網(wǎng)(IoT)場景,具有低帶寬、高延遲網(wǎng)絡(luò)環(huán)境下的優(yōu)勢,SpringBoot作為流行的 Java開發(fā)框架,能夠方便地與MQTT集成,實現(xiàn)高效的消息通信,本文將詳細(xì)介紹如何在SpringBoot項目中接入MQTT,需要的朋友可以參考下
    2025-03-03
  • SpringBoot DevTools之開發(fā)工具與熱部署機制詳解

    SpringBoot DevTools之開發(fā)工具與熱部署機制詳解

    本文將深入探討Spring Boot DevTools的核心功能、配置方法以及最佳實踐,幫助開發(fā)者顯著提升開發(fā)效率,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • spring cloud中啟動Eureka Server的方法

    spring cloud中啟動Eureka Server的方法

    本篇文章主要介紹了spring cloud中啟動Eureka Server的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • spring?boot使用攔截器修改請求URL域名?換?IP?訪問的方法

    spring?boot使用攔截器修改請求URL域名?換?IP?訪問的方法

    Spring Interceptor是一個非常類似于Servlet Filter 的概念 ,這篇文章主要介紹了spring?boot使用攔截器修改請求URL域名?換?IP?訪問的相關(guān)知識,需要的朋友可以參考下
    2022-09-09
  • springboot集成shiro遭遇自定義filter異常的解決

    springboot集成shiro遭遇自定義filter異常的解決

    這篇文章主要介紹了springboot集成shiro遭遇自定義filter異常的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringMvc后臺接收json數(shù)據(jù)中文亂碼問題詳解

    SpringMvc后臺接收json數(shù)據(jù)中文亂碼問題詳解

    這篇文章主要介紹了SpringMvc后臺接收json數(shù)據(jù)中文亂碼問題詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09

最新評論

竹山县| 灵璧县| 那坡县| 塘沽区| 常州市| 三明市| 无锡市| 偏关县| 府谷县| 昌宁县| 宁远县| 应城市| 阳西县| 宁津县| 溆浦县| 广德县| 大化| 锡林浩特市| 军事| 耿马| 澳门| 郧西县| 梅河口市| 伊金霍洛旗| 沛县| 凭祥市| 运城市| 荆门市| 东丰县| 纳雍县| 裕民县| 文成县| 青神县| 肃南| 武平县| 塔城市| 海伦市| 蕲春县| 开阳县| 积石山| 徐汇区|