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

Spring框架開發(fā)IOC兩種創(chuàng)建工廠方法詳解

 更新時(shí)間:2021年09月15日 16:05:08   作者:DrLai  
這篇文章主要介紹了Spring框架IOC兩種創(chuàng)建工廠方法詳解,文中附含詳細(xì)的代碼示例分別對(duì)靜態(tài)方法和實(shí)例方法創(chuàng)建工廠作了簡(jiǎn)要的分析

1.IOC有兩種創(chuàng)建工廠的方法

IoC 通過工廠模式創(chuàng)建 bean 的方式有兩種: 靜態(tài)工廠方法 實(shí)例工廠方法

2.兩種方法的不同

2.1靜態(tài)方法創(chuàng)建

就是直接可以通過靜態(tài)方法來實(shí)例化一個(gè)對(duì)象,采用類名.方法名的方式創(chuàng)建

public class HelloFactory {
    public static HelloWorld getInstance(){
        return new Hello();
    }
}
HelloWorldFactory.getInstance();
 

2.2實(shí)例方法創(chuàng)建

采用new的方式在堆內(nèi)存開辟

public class Hello {
    public HelloWorld createHelloWorld(){
        return new Hello();
    }
}
Hello helloF = new Hello();
hello.createHelloWorld();

靜態(tài)工廠方法

package entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Car {
 private long id;
 private String name;
}
 
package factory;
import entity.Car;
import java.util.HashMap;
import java.util.Map;
public class StaticCarFactory {
 private static Map<Long, Car> carMap;
 static{
 carMap = new HashMap<Long, Car>();
 carMap.put(1L,new Car(1L,"寶⻢"));
 carMap.put(2L,new Car(2L,"奔馳"));
 }
 public static Car getCar(long id){
 return carMap.get(id);
 }
}

xml配置文件

<!-- 配置靜態(tài)⼯⼚創(chuàng)建 Car -->
<bean id="car" class="com.southwind.factory.StaticCarFactory" factorymethod="getCar">
 <constructor-arg value="2"></constructor-arg>
</bean>

實(shí)例工廠創(chuàng)建

package factory;
import entity.Car;
import java.util.HashMap;
import java.util.Map;
public class InstanceCarFactory {
 private Map<Long, Car> carMap;
 public InstanceCarFactory(){
 carMap = new HashMap<Long, Car>();
 carMap.put(1L,new Car(1L,"寶⻢"));
 carMap.put(2L,new Car(2L,"奔馳"));
 }
 public Car getCar(long id){
 return carMap.get(id);
 }
}

xml配置文件

<!-- 配置實(shí)例⼯⼚ bean -->
<bean id="carFactory" class="factory.InstanceCarFactory">
</bean>
<!-- 賠償實(shí)例⼯⼚創(chuàng)建 Car -->
<bean id="car2" factory-bean="carFactory" factory-method="getCar">
 <constructor-arg value="1"></constructor-arg>
</bean>

總結(jié)

工廠模式的思想正好契合SpringIOC的設(shè)計(jì)思想:某一接口的具體實(shí)現(xiàn)類的選擇控制權(quán)從調(diào)用類中移除,轉(zhuǎn)而交給第三方?jīng)Q定,即借由Spring的Bean配置來實(shí)現(xiàn)控制,這同樣也是工廠模式的思想。充分體現(xiàn)出解耦合和便于維護(hù)的特性。

以上就是Spring框架IOC兩種創(chuàng)建工廠方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Spring框架IOC創(chuàng)建工廠的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決IDEA中不能正常輸入光標(biāo)變粗的問題

    解決IDEA中不能正常輸入光標(biāo)變粗的問題

    這篇文章主要介紹了在IDEA中不能正常輸入光標(biāo)變粗的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-09-09
  • java調(diào)用中國(guó)天氣網(wǎng)api獲得天氣預(yù)報(bào)信息的方法

    java調(diào)用中國(guó)天氣網(wǎng)api獲得天氣預(yù)報(bào)信息的方法

    這篇文章主要介紹了java調(diào)用中國(guó)天氣網(wǎng)api獲得天氣預(yù)報(bào)信息的方法,可實(shí)現(xiàn)調(diào)用溫度、風(fēng)力風(fēng)向及近期天氣狀況等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java 使用 HttpClient 發(fā)送 GET請(qǐng)求和 POST請(qǐng)求

    Java 使用 HttpClient 發(fā)送 GET請(qǐng)求和 POST請(qǐng)求

    本文主要介紹了Java 使用 HttpClient 發(fā)送 GET請(qǐng)求和 POST請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java生成PDF文件的實(shí)例代碼

    Java生成PDF文件的實(shí)例代碼

    Java生成PDF文件的實(shí)例代碼,需要的朋友可以參考一下
    2013-05-05
  • Spring?MVC?URL地址映射的示例代碼

    Spring?MVC?URL地址映射的示例代碼

    @RequestMapping是一個(gè)用來處理請(qǐng)求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑。,這篇文章主要介紹了Spring?MVC?URL地址映射,需要的朋友可以參考下
    2022-07-07
  • spring boot啟動(dòng)時(shí)加載外部配置文件的方法

    spring boot啟動(dòng)時(shí)加載外部配置文件的方法

    這篇文章主要給大家介紹了關(guān)于spring boot啟動(dòng)時(shí)加載外部配置文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • SpringBoot解析指定Yaml配置文件的實(shí)現(xiàn)過程

    SpringBoot解析指定Yaml配置文件的實(shí)現(xiàn)過程

    這篇文章主要介紹了SpringBoot解析指定Yaml配置文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Centos7安裝JDK1.8詳細(xì)過程實(shí)戰(zhàn)記錄

    Centos7安裝JDK1.8詳細(xì)過程實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于Centos7安裝JDK1.8的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Java 編程如何使用 Class.forName() 加載類

    Java 編程如何使用 Class.forName() 加載類

    在一些應(yīng)用中,無法事先知道使用者將加載什么類,而必須讓使用者指定類名稱以加載類,可以使用 Class的靜態(tài)forName()方法實(shí)現(xiàn)動(dòng)態(tài)加載類,這篇文章主要介紹了Java編程如何使用Class.forName()加載類,需要的朋友可以參考下
    2022-06-06
  • SpringBoot基于Swagger2構(gòu)建API文檔過程解析

    SpringBoot基于Swagger2構(gòu)建API文檔過程解析

    這篇文章主要介紹了SpringBoot基于Swagger2構(gòu)建API文檔過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論

正定县| 土默特右旗| 孝昌县| 花莲县| 类乌齐县| 天全县| 龙泉市| 泊头市| 花垣县| 湖北省| 定安县| 师宗县| 清镇市| 龙门县| 奇台县| 稻城县| 拉萨市| 孟津县| 蕲春县| 张北县| 阿荣旗| 勃利县| 大化| 清水河县| 通州区| 云安县| 池州市| 桐梓县| 上饶市| 武安市| 石渠县| 桃园市| 南汇区| 宣威市| 汕尾市| 富顺县| 峨山| 兰州市| 永年县| 阿图什市| 墨脱县|