国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Spring中怎么通過(guò)實(shí)例工廠(chǎng)方法創(chuàng )建Bean

發(fā)布時(shí)間:2021-07-27 11:45 來(lái)源:億速云 閱讀:0 作者:Leah 欄目: 編程語(yǔ)言 歡迎投稿:712375056

這篇文章將為大家詳細講解有關(guān)Spring中怎么通過(guò)實(shí)例工廠(chǎng)方法創(chuàng )建Bean,文章內容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

一 配置

<?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">   <!-- 配置工廠(chǎng)Bean,該Bean負責產(chǎn)生其他Bean實(shí)例 -->   <bean id="personFactory" class="org.crazyit.app.factory.PersonFactory"/>   <!-- 下面配置驅動(dòng)Spring調用personFactory Bean的getPerson()方法來(lái)創(chuàng )建Bean   該bean元素包含的constructor-arg元素用于為工廠(chǎng)方法指定參數,   因此這段配置會(huì )驅動(dòng)Spring以反射方式來(lái)執行如下代碼:   PersonFactory pf = container.get("personFactory"); // container代表Spring容器   chinese = pf.getPerson("chin"); -->   <bean id="chinese" factory-bean="personFactory"      factory-method="getPerson">      <!-- 配置實(shí)例工廠(chǎng)方法的參數 -->      <constructor-arg value="chin"/>   </bean>   <!-- 下面配置會(huì )驅動(dòng)Spring以反射方式來(lái)執行如下代碼:   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{   // 定義一個(gè)打招呼的方法   public String sayHello(String name);   // 定義一個(gè)告別的方法   public String sayGoodBye(String name);}

三 實(shí)現類(lèi)

American

public class American implements Person{   // 實(shí)現Person接口必須實(shí)現如下兩個(gè)方法   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{   // 實(shí)現Person接口必須實(shí)現如下兩個(gè)方法   public String sayHello(String name)   {      return name + ",您好";   }   public String sayGoodBye(String name)   {      return name + ",下次再見(jiàn)";   }}

四 工廠(chǎng)類(lèi)

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

五 測試類(lèi)

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,下次再見(jiàn)Jack,Hello!Jack,Good Bye!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

激情综合亚洲色婷婷五月APP| 国产青草视频在线观看| 色综合色天天久久婷婷基地| 久久久国产精华液| 男人的天堂AV网站| 国内精品自在自线|