1.第一種基于xml 定義Bean的方式
? ? xml代碼:????
????? java代碼:
??public?class?MongoFileOperationUtil?{??
????private?static?AdvancedDatastore?dsForRW;??
????private?static?MongoFileOperationUtil?mongoFileOperationUtil;??
????public?void?init()?{??
????????mongoFileOperationUtil?=this;??
????????mongoFileOperationUtil.dsForRW?=this.dsForRW;??
????}??
}??
??
??
2. 第二種?@PostConstruct方式實(shí)現(xiàn)
@Component??
public?class?MongoFileOperationUtil?{??
????@Autowired??
????private?static?AdvancedDatastore?dsForRW;??
????private?static?MongoFileOperationUtil?mongoFileOperationUtil;??
????@PostConstruct??
????public?void?init()?{??
????????mongoFileOperationUtil?=this;??
????????mongoFileOperationUtil.dsForRW?=this.dsForRW;??
????}??
}??
@PostConstruct 注解的方法在加載類的構(gòu)造函數(shù)之后執(zhí)行,也就是在加載了構(gòu)造函數(shù)之后,執(zhí)行init方法;(@PreDestroy 注解定義容器銷毀之前的所做的操作)
這種方式和在xml中配置 init-method和 destory-method方法差不多,定義spring 容器在初始化bean 和容器銷毀之前的所做的操作;
3. set方法上添加@Autowired注解,類定義上添加@Component注解
import?org.mongodb.morphia.AdvancedDatastore;??
import?org.springframework.beans.factory.annotation.Autowired;??
import?org.springframework.stereotype.Component;??
@Component??
public?class?MongoFileOperationUtil?{??
private?static?AdvancedDatastore?dsForRW;??
????@Autowired??
????public?void?setDatastore(AdvancedDatastore?dsForRW)?{??
????????MongoFileOperationUtil.dsForRW?=?dsForRW;??
????}??
}??
首先Spring要能掃描到AdvancedDatastore的bean,然后通過setter方法注入;
然后注意:成員變量上不需要再添加@Autowired注解
4. 通過?ApplicationContext 對象
定義 配置 Bean 對象
靜態(tài)配置類初始化 配置類
在 任何地方使用配置,不管是不是靜態(tài)變量