欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

2.兩種方法的不同

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

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

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

2.2實例方法創(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>

實例工廠創(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配置文件

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

總結(jié)

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

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

相關(guān)文章

  • java實現(xiàn)合并兩個已經(jīng)排序的列表實例代碼

    java實現(xiàn)合并兩個已經(jīng)排序的列表實例代碼

    這篇文章主要介紹了java實現(xiàn)合并兩個已經(jīng)排序的列表實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • java實現(xiàn)最短路徑算法之Dijkstra算法

    java實現(xiàn)最短路徑算法之Dijkstra算法

    這篇文章主要介紹了java實現(xiàn)最短路徑算法之Dijkstra算法, Dijkstra算法是最短路徑算法中為人熟知的一種,是單起點全路徑算法,有興趣的可以了解一下
    2017-10-10
  • JavaWeb案例講解Servlet常用對象

    JavaWeb案例講解Servlet常用對象

    Java Servlet 是運行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層
    2021-10-10
  • Java多線程并發(fā)synchronized?關(guān)鍵字

    Java多線程并發(fā)synchronized?關(guān)鍵字

    這篇文章主要介紹了Java多線程并發(fā)synchronized?關(guān)鍵字,Java?在虛擬機層面提供了?synchronized?關(guān)鍵字供開發(fā)者快速實現(xiàn)互斥同步的重量級鎖來保障線程安全。
    2022-06-06
  • Java原子類中的AtomicInteger類詳解

    Java原子類中的AtomicInteger類詳解

    這篇文章主要介紹了Java原子類中的AtomicInteger類詳解,原子類可以保證對"變量"操作的,原子性、有序性、可見性,我們可以通過AtomicInteger類,來看看它們是怎樣工作的,需要的朋友可以參考下
    2023-10-10
  • Java多線程之Disruptor入門

    Java多線程之Disruptor入門

    這篇文章主要介紹了Java多線程之Disruptor入門,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java多線程的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java超詳細(xì)講解三大特性之一的多態(tài)

    Java超詳細(xì)講解三大特性之一的多態(tài)

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調(diào)用到底是哪個類中實現(xiàn)的方法,必須在由程序運行期間才能決定
    2022-05-05
  • 利用Spring Cloud Config結(jié)合Bus實現(xiàn)分布式配置中心的步驟

    利用Spring Cloud Config結(jié)合Bus實現(xiàn)分布式配置中心的步驟

    這篇文章主要介紹了利用Spring Cloud Config結(jié)合Bus實現(xiàn)分布式配置中心的相關(guān)資料,文中通過示例代碼將實現(xiàn)的步驟一步步介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面來一起看看吧
    2018-05-05
  • java高效讀大文件(csv,text)的幾種處理方式

    java高效讀大文件(csv,text)的幾種處理方式

    這篇文章主要給大家介紹了關(guān)于java高效讀大文件(csv,text)的幾種處理方式,Java中處理大文件時,通常需要采取一些特定的策略來避免內(nèi)存溢出或性能問題,文中通過代碼及圖片介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • Springmvc restful配置遇到的小坑

    Springmvc restful配置遇到的小坑

    本文是小編給大家?guī)Я说腟pringmvc restful配置遇到的小小坑,小編給大家?guī)砹藛栴}原因及解決辦法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07

最新評論