日韩性视频-久久久蜜桃-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)【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 澳门色网| 久久草精品 | 你懂的在线网站 | 欧美99视频 | 97人妻精品一区二区三区动漫 | 精品国产一区二区在线观看 | 视频免费1区二区三区 | 91精品国产福利在线观看 | 精品美女一区二区 | 精品国产乱子伦一区二区 | 欧美91成人网 | 欧美一区二区三区久久 | 少妇2做爰hd韩国电影 | 欧美壮男野外gaytube | 女人又爽又黄免费女仆 | 久久久精品免费观看 | 免费在线观看黄 | 日本动漫艳母 | 天天干天天操天天碰 | 蜜臀av88 | 日日夜夜人人 | 色婷婷18| 日韩欧美国产另类 | 日本欧美色 | 9色在线视频 | 亚洲一区二区三区人妻 | 亚洲色图校园春色 | 一区免费在线观看 | 樱花视频在线免费观看 | 日本新japanese乱熟 | 天天操人人 | 成人黄色性视频 | 国产一区亚洲二区 | 嫩草一区二区 | 国产免费高清视频 | 波多野结衣视频一区 | 亚洲伦理久久 | 日韩七区 | 精品成人久久 | 欧美大片xxx | 欧美成人小视频 | www.三级 | 国产中文字幕在线视频 | 欧美女同在线 | 147人体做爰大胆图片成人 | 亚洲自拍中文 | 国产乱来 | 色综合久久久久久久 | 艳母免费在线观看 | 牛人盗摄一区二区三区视频 | 麻豆三级视频 | 亚洲+小说+欧美+激情+另类 | 国产超91| 亚洲三级视频在线观看 | 超碰在线c | 中文字幕 欧美日韩 | 精品一区李梓熙捆绑 | 日韩精品视频久久 | 在线超碰av| 老妇裸体性激交老太视频 | 粉嫩av一区二区三区免费观看 | 久久免费的精品国产v∧ | 宿舍女女闺蜜调教羞辱 | 成人深夜在线 | 男女插插网站 | 亚洲男性天堂 | 国产精品mm | 日本japanese乳偷乱熟 | 麻豆视频免费入口 | 在线观看 中文字幕 | 中文字幕精品久久久久人妻红杏1 | 午夜精品久久久久久久无码 | 亚洲a∨无码无在线观看 | 亚洲一二三av | 久久久久亚洲av成人网人人软件 | 国产精品99久久免费黑人人妻 | 亚洲av片不卡无码久久 | www.狠狠操.com| 中文字幕日韩三级片 | 欧洲金发美女大战黑人 | 天天想你在线观看完整版高清 | 国产视频污 | 国产精品福利在线播放 | 亚洲欧洲在线播放 | 日日干日日干 | 国产一区不卡视频 | 国产麻豆电影在线观看 | 国产乱码精品一区二区三区精东 | juliaann欧美二区三区 | 国内精品久久久 | 久久亚洲aⅴ无码精品 | 非洲黄色大片 | 男女日批免费视频 | 熟妇人妻久久中文字幕 | 亚洲 欧美 激情 另类 | 我我色综合 | 日韩一区在线播放 | 午夜精品免费观看 | 日本黄色录像 |