日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring-配置bean的方法(工厂方法和Factorybean)【转】

發布時間:2025/4/16 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring-配置bean的方法(工厂方法和Factorybean)【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過工廠方法配置bean

  

  通過調用靜態工廠方法創建bean
    通過靜態工廠方法創建bean是將對象創建的過程封裝到靜態方法中。當客戶端需要對象時,只需要簡單地調用靜態方法,而不關心創建對象的細節。
    要聲明通過靜態方法創建的bean,需要在bean的class屬性里指定擁有該工廠的方法的類,通知在factory-method屬性里指定工廠方法的名稱,

    最后,使用<constructor-arg>元素為該方法傳遞方法參數
  通過調用實例工廠方法創建bean
    實例工廠方法:將對象的創建過程封裝到另外一個對象實例的方法里。當客戶端需要請求對象時,只需要簡單的調用該實例方法而不需關心對象的創建細節。
    要聲明通過實例工廠方法創建的bean:
      -在bean的factory-bean屬性里指定擁有該工廠方法的bean
      -在factory-method屬性里指定該工廠方法的名稱
      -使用constructor-arg元素為工廠方法傳遞方法參數

靜態工廠類:

 

1 package com.yl.factory;2 3 import java.util.HashMap;4 import java.util.Map;5 6 /**7 * 靜態工廠方法:直接調用某一個類的靜態方法就可與返回bean的實例8 * @author yul9 * 10 */ 11 public class StaticCarFactory { 12 13 private static Map<String, Car> cars = new HashMap<String, Car>(); 14 //靜態塊用于創建map對象,然后用map根據key獲取指定的car對象 15 static { 16 cars.put("audi", new Car("audi", 300000)); 17 cars.put("ford", new Car("ford", 300000)); 18 } 19 /** 20 * 靜態工廠方法 21 * @param name 22 * @return 23 */ 24 public static Car getCar(String name) { 25 26 return cars.get(name); 27 } 28 }

實例工廠類:

1 package com.yl.factory;2 3 import java.util.HashMap;4 import java.util.Map;5 /***6 * 實例工廠方法:實例工廠的方法,即現需要創建工廠本身,在調用工廠的實例方法來返回bean的實例7 * @author yul8 *9 */ 10 public class InstanceCarFactory { 11 12 private Map<String, Car> cars = new HashMap<String, Car>(); 13 //通過默認構造器初始化map對象 14 public InstanceCarFactory() { 15 cars = new HashMap<String, Car>(); 16 cars.put("audi", new Car("audi", 300000)); 17 cars.put("ford", new Car("ford", 400000)); 18 } 19 20 public Car getCar(String brand) { 21 return cars.get(brand); 22 } 23 }

工廠方法的配置文件:

1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="http://www.springframework.org/schema/beans"3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">5 6 <!-- 通過靜態工廠方法來配置bean,注意不是配置靜態工廠方法實例,而是配置bean實例 -->7 <!-- 8 class屬性:指向靜態工廠方法的全類名9 factory-method:指向靜態工廠方法的名字 10 constructor-arg:如果靜態工廠方法需要傳入參數,則使用constructor-arg來配置參數 11 --> 12 <bean id="car1" 13 class="com.yl.factory.StaticCarFactory" 14 factory-method="getCar"> 15 <constructor-arg value="audi"></constructor-arg> 16 </bean> 17 18 <!-- 配置工廠的實例 --> 19 <bean id="carFactory" class="com.yl.factory.InstanceCarFactory"></bean> 20 21 <!-- 22 factory-bean:指向實例工廠方法的bean 23 factory-method:指向實例工廠方法的名字 24 constructor-arg:如果實例工廠方法需要傳入參數,則使用constructor-arg來配置參數 25 --> 26 <!-- 通過實例工廠方法來配置bean --> 27 <bean id="car2" factory-bean="carFactory" factory-method="getCar"> 28 <constructor-arg value="ford"></constructor-arg> 29 </bean> 30 </beans>

?

通過Factorybean配置bean

?繼承Factorybean的實現類:

1 package com.yl.factorybean;2 3 import org.springframework.beans.factory.FactoryBean;4 //自定義的Factorybean需要實現FactoryBean接口5 public class CarFactoryBean implements FactoryBean<Car> {6 7 private String brand;8 9 public void setBrand(String brand) { 10 this.brand = brand; 11 } 12 13 /** 14 * 返回bean的對象 15 */ 16 @Override 17 public Car getObject() throws Exception { 18 // TODO Auto-generated method stub 19 return new Car("BMW", 600000); 20 } 21 /** 22 * 返回bean的類型 23 */ 24 @Override 25 public Class<?> getObjectType() { 26 // TODO Auto-generated method stub 27 return Car.class; 28 } 29 30 @Override 31 public boolean isSingleton() { 32 // TODO Auto-generated method stub 33 return true; 34 } 35 36 }

配置文件:

1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="http://www.springframework.org/schema/beans"3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">5 <!-- 6 通過Factorybean來配置bean的實例7 class:指向Factorybean的全類名8 property:配置Factorybean的屬性9 10 但實際返回的實例卻是Factorybean的getObject()方法返回的實例 11 --> 12 <bean id="car" class="com.yl.factorybean.CarFactoryBean"> 13 <property name="brand" value="BMW"></property> 14 </bean> 15 </beans>

轉載于:https://www.cnblogs.com/longronglang/p/6183774.html

總結

以上是生活随笔為你收集整理的Spring-配置bean的方法(工厂方法和Factorybean)【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美又粗又长 | 四虎影院黄色 | 韩国中文字幕在线观看 | 男女啪啪网站 | 五月婷婷小说 | 日韩黄色大片 | 日韩在线一区视频 | 一卡二卡三卡视频 | av免费看在线 | 中文在线观看免费高清 | 久久色网| 长腿校花无力呻吟娇喘的视频 | 成人欧美一区二区三区 | 久久精品在线免费观看 | 亚洲在线天堂 | av先锋资源网 | 国内精品偷拍 | 日韩三级黄 | 少妇被按摩师摸高潮了 | 国产福利网站 | 日韩免费观看视频 | 成年人黄色录像 | 天天天天天天天干 | 国产激情久久 | 日韩xxx视频| 秘密的基地 | 免费插插视频 | 一级大片视频 | 国产夫妻性生活视频 | 亚洲青涩在线 | 成年人黄色在线观看 | 色噜噜狠狠狠综合曰曰曰88av | 日韩免费网 | 欢乐谷在线观看免费播放高清 | 国产动漫av | 在线毛片网站 | 99热免费在线 | 青青草视频在线免费观看 | 粉嫩小泬无遮挡久久久久久 | 欧美在线视频精品 | 在线观看av国产一区二区 | mm131亚洲精品| 黄色国产免费 | av在哪里看| 欧美成人精品二区三区99精品 | 丰满雪白极品少妇流白浆 | 日韩 欧美 亚洲 国产 | 天天爽夜夜爽夜夜爽 | 轻点好疼好大好爽视频 | 国产人澡人澡澡澡人碰视频 | 日韩精品在线观看一区二区三区 | 成熟了的熟妇毛茸茸 | 国产区免费观看 | 欧美高清视频一区二区 | 毛片毛片 | 91欧美一区二区三区 | 亚洲图区综合 | 伊人天天| 国产在线午夜 | 亚洲av最新在线网址 | 国产手机av| 欧美日韩亚洲另类 | 久久精品这里 | 免费黄色小视频网站 | 欧美激情 在线 | 筱田优全部av免费观看 | 日本免费电影一区二区三区 | 岛国av免费 | 免费看美女被靠到爽的视频 | 亚洲欧美一区二区三区四区五区 | 国产91在线视频 | 色乱码一区二区三区网站 | 欧美视频免费在线观看 | 日韩久久久久久久久 | 日韩伦理一区二区三区 | 日韩伦理一区二区三区 | 少妇野外性xx老女人野外性xx | 巨胸大乳www视频免费观看 | 精品一区二区三区免费看 | 91精品又粗又猛又爽 | 淫久久| 亚洲操图 | 天天操天天爱天天干 | 涩涩网址 | 人妻一区在线 | 狠狠操亚洲 | 日韩网站免费观看高清 | 欧美黑人疯狂性受xxxxx喷水 | 亚洲一区欧美日韩 | 国产精品6| 999精品在线观看 | wwwww在线观看 | 亚洲精品国产无码 | 韩国一级一片高清免费观看 | 色吧综合网 | 一级片视频免费 | 国产97视频 | 欧美性猛交富婆 | 亚洲com|