springにおけるFactoryBenにおけるgetObject()方法例解析
2088 ワード
本論文で研究したのは主にspringにおけるFactoryBenにおけるgetObject()法の関連内容であり、具体的には以下の通りである。
FactoryBeanインターフェースは、以下の3つのインターフェース方法を定義している。 Object getObject():FactoryBenによって作成されたビーンの例を返し、isSingleton()がtrueに戻ると、この例はSpring容器の単一のインスタンスキャッシュに入れる。 bootlean isSingleton():FactoryBeanによってビーンを作成する役割領域がsingletonかそれともprototypeかを確定します。 Class get Object Type():FactoryBeanに戻ってビーンを作成するタイプ。 プロファイル中のclass属性配置の実装クラスがFactoryBernである場合、getBen方式で戻ってくるのはFactoryBern自身ではなく、FactoryBernメソッドで戻ってくるオブジェクトで、FactoryBern()がgeBeatObject(メソッド)を代理しているのと同じです。
私たちはCarを配置する時、Carの各属性はそれぞれ一つの「property」要素ラベルに対応します。もし私達はこのような方式がいい加減で簡潔ではなく、カンマで区切られた方式で一度にCarのすべての属性のために配置値を制定したいなら、FactroyBeanを編纂することによって目的を達成することができます。
締め括りをつける
以上が、springにおけるFactoryBenにおけるgetObject()方法の実例解析のすべての内容についてです。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。
FactoryBeanインターフェースは、以下の3つのインターフェース方法を定義している。
私たちはCarを配置する時、Carの各属性はそれぞれ一つの「property」要素ラベルに対応します。もし私達はこのような方式がいい加減で簡潔ではなく、カンマで区切られた方式で一度にCarのすべての属性のために配置値を制定したいなら、FactroyBeanを編纂することによって目的を達成することができます。
import org.springframework.beans.factory.FactoryBean;
public class CarFactoryBean implements FactoryBean{
private String carInfo;
public Stirng getCarInfo(){
return carInfo;
}
public void setCarInfo(String carInfo){
this.carInfo=carInfo;
}
public Object getObject()throws Exception{
Car car=new Car();
String[]infos = carInfo.split(",");
car.setBrand(infos[0]);
car.setMaxSpeed(Integer.aarseint(infos[1]));
car.setPrice(double.parsedouble(infos[2]));
return car;
}
public Class getObjectType(){
return Car.class;
}
public Boolean isSingleton() {
return true;
}
}
このCarFactoryBeanがあったら、私達は以下の構成ファイルを使ってCal Beanを定義することができます。
<bean id="car" class="com.lxm.fb.carFactoryBean">
<property name="carInfo" value=" CA72,200,20000.00"/>
</bean>
getBeanを呼び出すと,Springは反射機構により,CarFactoryBeanがFactoryBenのインターフェースを実現していることを発見した。このときSping容器は,インターフェース方式のCarFactoryBen()を呼び出して,工場類の作成の対象に戻る。ユーザーがCarFactoryBeanの例を取得することを望むなら、getBean法を使用する際に、beanNameの前に「&」プレフィックスを明示的に付加する必要がある。締め括りをつける
以上が、springにおけるFactoryBenにおけるgetObject()方法の実例解析のすべての内容についてです。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。