Spring04——工廠方式配置bean
阿新 • • 發佈:2019-01-05
Bean的配置形式:基於XML檔案的方式;基於註解的方式
Bean的配置方式:通過全類名(反射)、通過工廠方法(靜態工廠方法&例項化工廠的方法)、factoryBean
下文主要介紹靜態工廠方法和factoryBean的方法:
建立實體:
就兩個屬性以及對應的get、set方法
package com.spring.entity01; /** * @Author: wj * @Date: 2018/11/19 14:29 * @Version 1.0 */ public class Car { public String carNam; public String price; public Car(String carNam, String price) { this.carNam = carNam; this.price = price; } public String getCarNam() { return carNam; } public void setCarNam(String carNam) { this.carNam = carNam; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } @Override public String toString() { return "Car{" + "carNam='" + carNam + '\'' + ", price='" + price + '\'' + '}'; } }
一.靜待工廠方法:
1.建立工廠類:
通過getCar 方法根據Map的key值返回相應的實體類
package com.spring.beanFactory; import com.spring.entity01.Car; import java.util.HashMap; import java.util.Map; /** * @Author: wj * @Date: 2018/11/19 14:31 * @Version 1.0 */ public class StaticCarFactory { private static Map<String,Car> carMap = new HashMap<String, Car>(); static { carMap.put("audi",new Car("audi","20000")); carMap.put("ford",new Car("ford","40000")); } public static Car getCar(String name){ return carMap.get(name); } }
2.建立XML檔案
3.main方法:
4.輸出:
該方法主要通過xml傳入的引數去找到工廠方法裡靜態Map中對應的實體類實現的。
二.factoryBean 方法
1.建立CarFacoryBean 類實現FactoryBean介面
package com.spring.beanFactory; import com.spring.entity01.Car; import org.springframework.beans.factory.FactoryBean; /** * @Author: wj * @Date: 2018/11/19 15:29 * @Version 1.0 */ public class CarFactoryBean implements FactoryBean<Car> { private String carNam; public void setCarNam(String carNam) { this.carNam = carNam; } public Car getObject() throws Exception { return new Car(carNam,"520000"); } public Class<?> getObjectType() { return Car.class; } public boolean isSingleton() { return true; } }
2.建立xml檔案
<!--
class:CarFactoryBean的全路徑
該方法是通過getObject方法返回實體Bean的
-->
<bean id="car2" class="com.spring.beanFactory.CarFactoryBean" >
<property name="carNam" value="BMW"></property>
</bean>
3.輸出
:
總結:工廠方法在多框架繼承的時候比較常見,在繼承Struts2是會用得到