我有以下的情況後:谷歌吉斯,怎麼之前注入資源,並注入類
類ServiceCaller:
public class ServiceCaller{
private Service service;
public void initialize(List<String> params){
//get the params from list and set to String objects
service = new Service(param1,param2);
}
}
一流的服務:
public class Service{
SomeClass classe;
public Service(String param1,String param2){
//call methods to do stuffs with params
classe = new SomeClass();
}
}
我的申請一個讀取.properties並調用ServiceCaller Class並在構造完成後初始化並填充ServiceCaller中的參數的框架。 Service類只是簡單地使用參數,而實例則是SomeClass類。
我想這一切傳遞給谷歌吉斯,和我的課是如此:
服務等級來電:
public class ServiceCaller{
private final Service service;
@Inject
public ServiceCaller(Service service){
this.service = service;
}
public initialize(List<String> params){
//set params to objects...
}
}
和一流的服務:
public class Service{
private final SomeClass classe;
@Inject
public Service(SomeClass classe, String param1,String param2){
//call methods to do stuffs with params
this.classe = classe;
}
}
這裏的我的疑問:我能做到這一點?
1 - 在ServiceCaller中,注入的構造函數在initMethod之前調用,這樣他就沒有參數了。我認爲這會在Service類中生成一個nullPointer。我怎樣才能收到字符串參數?
2 - 如何注入ServiceCaller類中的服務類?他需要調用init,使用參數來裝載Service類,並且只有在這一刻纔將Service(帶有參數)注入到ServiceCaller中。
誰定義了「params」?它真的是一個運行時調用,還是這些會話/應用程序範圍的值(如wsdl-url,jndi-name,...)?然後你可以通過模塊配置這些值並將它們注入爲「Named」常量...... – 2012-07-21 07:41:55